2012-06-27 6 views
5

In VS 2010 Pro bekomme ich einen Kompilierfehler mit der Angabe "erwartet an Bezeichner "auf dem max() Teil des Befehls. Es scheint, dass in der Header-Datei windows.h ein Maximum (a, b) angegeben ist und dieses verwendet werden soll.Std :: cin.ignore (Std :: numerische_limits <std :: streamsize> :: max(), ' n') Fehler bei der Verwendung von #include <Windows.h>

Ich habe versucht, die # include als auch zu verwenden, aber das beheben das Problem nicht

Gibt es trotzdem, dies zu umgehen?

+0

möglich Duplikat von [std :: max - erwartet eine Kennung] (http://stackoverflow.com/questions/7035023/stdmax-expected-an-identifier) ​​ – ildjarn

+0

ein weiteres Duplikat [Makro "max" erfordert 2 Argumente, aber nur 1 gegeben] (http://stackoverflow.com/questions/518517/macro-max-requires-2-arguments-but-only-1-given) – jrok

Antwort

12

Die <windows.h>-Header hat die min() und max() Makros seit undenklichen Zeiten, und sie verursachen häufig Probleme mit C++. Glücklicherweise können Sie sie deaktivieren, indem Sie #define NOMINMAX hinzufügen, bevor Sie <windows.h> einschließen.

+0

Ihre Antwort ist besser als meins. –