Windows Makros
-
Gudn abend,
Folgendes Problem : Wenn ich windows.h inkludiere werden auch Makros wie beispielsweise min etc. aktiv. Wenn ich jetzt aber sowas machen will
#define WIN32_LEAN_AND_MEAN #include <windows.h> //Muss ich dann wirklich das hier tun ums zum Laufen zu bringen? #undef min namespace foo { template <class T> T min(T a, T b) { return a < b ? a : b; } }Oder gibt es eine andere Möglichkeit dieses Makro zu umgehen oder was auch immer?
Danke schön
Tobi
-
Man hat sich angewohnt Makros in Großbuchstaben zu verfassen und MIN != min bei Bezeichnern. Solange du also keine Funktion MIN nennst - und das sollst du auch nicht - bist du auf der sicheren Seite.
MfG SideWinder
-
Hi,
Danke für die schnelle Antwort. Das Problem ist allerdings, dass es ein Makro min in der windows.h gibt! Wenn ich jetzt eine eigene Funktion min definiere labert der Compiler immer was von function-style cast. Also wird mir wohl nichts anderes übrig bleiben, dieses min zu undefen. Oder gibts da ne andere Lösung?
Ciao
Tobi
-
#define WIN32_LEAN_AND_MEAN #define NOMINMAX #include <windows.h> namespace foo { template <class T> T min(T a, T b) { return a < b ? a : b; } }