Page 1 of 1

Erstellen Sie ein C++-Makro, das eine Compilervariable definiert und eine Methode aufruft

Posted: 18 Jan 2025, 18:31
by Guest
Ich versuche, ein Compiler-Makro in C++ zu erstellen, das eine (Compiler-)Variable definiert und dann eine C++-Methode aufruft. Wenn ich beispielsweise Folgendes in meinem C++-Code habe:

Code: Select all

TL_CLI_ADD_EXIT_CODE(123,"SOMENAME","Description of code")
Ich möchte, dass der Compiler es erweitert auf:

Code: Select all

#define EXITCODE_SOMENAME   123
addExitCode(123,"SOMENAME","Description of code");
Der nächste Code, den ich gefunden habe, ist:

Code: Select all

// Macro to concatenate EXITCODE_ prefix with the number
#define TL_CLI_CONCAT_EXITCODE(number) EXITCODE_##number

// Macro to create a new exit code definition
#define TL_CLI_ADD_EXIT_CODE(c,n,d) \
#define TL_CLI_CONCAT_EXITCODE(n) c \
addExitCode(c,\"n\",d);
Ist das, was ich versuche, überhaupt möglich? Ich scheine zwischen verschiedenen Fehlern zu wechseln, einschließlich „Auf ‚#‘ folgt kein Makroparameter“. Kann mir jemand raten, was falsch ist?