In meiner C++ .h
Datei gelesen werden:C++ #define Wert nicht in CPP-Datei
class foo {
#define useThis true
...
}
In meiner .cpp
Datei:
#if useThis
... generate A code
#else
... generate B code
#endif
Das Problem ist, dass die #define
Werte werden nicht eingelesen die .cpp
Datei, so was passiert ist, wird sowohl A und B generiert werden.
Ich schließe die .h
Datei in der Oberseite der .cpp
Datei ein.
Erstens veröffentlichen echter Code mehr geht hier um zu helfen . Es gibt keine Möglichkeit, dass ein richtiger Compiler beide generiert (in diesem Fall wird 'generate B code' der gewinnende Zweig sein). Zweitens, verwende "1" anstelle von "wahr", da "wahr" kein Präprozessorwert ist. Das, oder benutze einfach '#ifdef useThis' oder' #if defined (useThis) 'und lasse den' true' Wert komplett weg. – Qix
[Kann nicht reproduziert werden.] (Http://melpon.org/wandbox/permlink/iVXMEjUZLFjJeMSZ) – chris
@Qix Der C++ - Präprozessor ** erkennt ** 'true' und' false' als die entsprechenden booleschen Werte. – Angew