Heim > Backend-Entwicklung > C++ > Wie löst man maximale Makrokollisionen zwischen Windows.h und std::max?

Wie löst man maximale Makrokollisionen zwischen Windows.h und std::max?

Patricia Arquette
Freigeben: 2024-11-10 13:38:02
Original
378 Leute haben es durchsucht

How to Resolve Max Macro Collisions Between Windows.h and std::max?

Umgang mit Max-Makro-Kollisionen in Windows.h und Std

Windows.h enthält WinDef.h, das die minimalen und maximalen Makros definiert . Dies kann zu Konflikten mit dem in std definierten Max-Makro führen und zu Kompilierungsfehlern führen.

Um dieses Problem zu beheben, können Sie die folgende Problemumgehung verwenden:

#define NOMINMAX

#include <Windows.h>
#include <iostream>

using std::cin;
using std::cout;

void Foo()
{
    int delay = 0;
    do
    {
        if (cin.fail())
        {
            cin.clear();
            cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        }
        cout << "Enter number of seconds between submissions: ";
    } while (!(cin >> delay) || delay == 0);
}
Nach dem Login kopieren

Durch die Definition des NOMINMAX-Makros können Sie Unterdrücken Sie die Min- und Max-Definitionen in WinDef.h, sodass Sie das Max-Makro von std ohne Konflikte verwenden können.

Das obige ist der detaillierte Inhalt vonWie löst man maximale Makrokollisionen zwischen Windows.h und std::max?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage