Heim > Artikel > Backend-Entwicklung > Wie löst man maximale Makrokollisionen zwischen Windows.h und 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); }
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!