rubricanis
Homo ludens
Die große Hitze ist zwar vorbei, aber dennoch scheine ich heute nur Matsch im Kopf zu haben. Kann mir da jemand auf die Sprünge helfen?
Ich benutze während der Entwicklung eine Präprozessor direktive 'trace' die ich ich mit gmake deklariere:
In Prefix.hpp und im Quellcode habe ich dann:
Jetzt möchte ich als weitere Option allerdings neben 'out' noch 'log' haben; d.h. also außer den beiden noch undefined. Ich dachte das würde so funktionieren:
Und in C++
Ich dachte das müßte so funktionieren, tut es aber nicht! Wenn ich 'log' setze (ist hier ja nur ein dummy) wird das Makro wie bei 'out' aktiviert. Undefined funktioniert erwartungsgemäß. Was mache ich hier falsch und wie macht man es richtig?
Peter
Ich benutze während der Entwicklung eine Präprozessor direktive 'trace' die ich ich mit gmake deklariere:
Code:
# gmakefile
trace ?=
...
ifeq ($(trace), out)
flags += -DTRACE
endif
Code:
#ifdef TRACE
#define trace(module, args) cout << module << "::" << __func__ << "(" << args << ")" << endl
#endif
// source
#ifdef TRACE
#include <iostream>
#define module xxx
#endif
Code:
# makefile
trace ?=
...
ifeq ($(trace), out)
flags += -DTRACE=$(trace)
endif
ifeq ($(trace), log)
flags += -DTRACE=$(trace)
endif
Code:
#ifdef TRACE
#if TRACE == out
#define trace(module, args)\
cout << module << "::" << __func__ \
<< "(" << args << ")" << endl
#elif TRACE == log
// dummy
#define trace(module, args)
#else
#define trace(module, args)
#endif
#else
#define trace(module, args)
#endif
Peter