Heim > Backend-Entwicklung > C++ > Hauptteil

Wie verwende ich std::min/max mit #define NOMINMAX?

DDD
Freigeben: 2024-11-12 07:46:02
Original
807 Leute haben es durchsucht

How to Use std::min/max with #define NOMINMAX?

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
Nach dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage