So verwenden Sie std::min/max mit #define NOMINMAX
So verwenden Sie die Standardbibliotheksfunktionen std::max und std: :min beim Definieren des Makros NOMINMAX die folgenden Schritte ausführen:
1. Definieren Sie NOMINMAX in allen Dateien, in denen std::min/max verwendet werden
Um sicherzustellen, dass das Makro wirksam wird, müssen Sie #define NOMINMAX in allen Dateien definieren, in denen Sie std::max und std verwenden: :min. Dies verhindert Kollisionen mit den in Windows integrierten Max- und Min-Funktionen.
2. Verwenden Sie Klammern, um die Makroerweiterung zu umgehen
NOMINMAX definiert std::min und std::max als Makros. Wenn die oben genannten Fehler auftreten, bedeutet dies, dass der Präprozessor diese Funktionen als Makros interpretiert. Um dies zu umgehen, setzen Sie die Funktionsnamen in Klammern:
(std::min)(x, y); // For std::min (std::max)(x, y); // For std::max
Indem Sie die Funktionsnamen in Klammern setzen, behandelt der Präprozessor sie als Funktionsaufrufe und nicht als Makroerweiterungen.
Hinweis: Diese Lösung ist etwas umständlich, da std::min und std::max bei jeder Verwendung in Klammern gesetzt werden müssen. Es handelt sich jedoch um eine Problemumgehung für dieses spezielle Problem.
Das obige ist der detaillierte Inhalt vonWie verwende ich std::min/max mit #define NOMINMAX?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!