Heim > Backend-Entwicklung > C++ > Warum erhalte ich Fehlermeldungen, wenn ich std::min/max mit #define NOMINMAX verwende?

Warum erhalte ich Fehlermeldungen, wenn ich std::min/max mit #define NOMINMAX verwende?

Patricia Arquette
Freigeben: 2024-11-14 17:18:02
Original
332 Leute haben es durchsucht

Why Do I Get Errors When Using std::min/max with #define NOMINMAX?

Verwenden von std::min/max mit #define NOMINMAX

In einem kürzlich durchgeführten Update Ihrer main.cpp-Datei haben Sie die folgende Präprozessoranweisung eingeführt:

#define NOMINMAX
#include <Windows.h>
#include <algorithm>
Nach dem Login kopieren

Mit dieser Aktion können Sie die Funktionen std::max und std::min in Ihrem Code verwenden. Nachfolgende Versuche, diese Funktionen in anderen Dateien zu verwenden, führen jedoch zu Fehlern wie:

error C2589: '(' : illegal token on right side of '::'
error C2059: syntax error : '::'
Nach dem Login kopieren

Trotz Versuchen, NOMINMAX in diesen zusätzlichen Dateien zu definieren, besteht das Problem weiterhin.

Das Problem liegt in der Tatsache ist, dass NOMINMAX Aliase für die Windows-Min- und -Max-Makros definiert und die von bereitgestellten Standard-C-Versionen überschreibt. Um dieses Problem zu beheben, verwenden Sie Klammern um die Aufrufe std::min und std::max:

(std::min)(x, y);
Nach dem Login kopieren

Dieser Ansatz vermeidet den Aufruf der funktionsähnlichen Makros und ermöglicht die Anwendung der Standard-C-Versionen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich Fehlermeldungen, wenn ich std::min/max mit #define NOMINMAX verwende?. 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