È possibile ridefinire una macro #define in C++ utilizzando le informazioni della macro stessa? Ho provato il codice qui sotto, ma a causa del modo in cui vengono valutate le macro l'output non era quello che mi aspettavo.Come ridefinire una macro #define in C++ utilizzando le informazioni della macro stessa?
#include <iostream>
#define FINAL_DEFINE "ABC"
#define NEW_DEFINE FINAL_DEFINE "DEF" // Want ABCDEF
#undef FINAL_DEFINE
#define FINAL_DEFINE NEW_DEFINE // Want ABCDEF, but get empty?
int main()
{
std::cout << FINAL_DEFINE << std::endl; // Want ABCDEF, but doesn't compile.
}
Ho aggiornato la domanda per essere più chiara. Fammi sapere se è ancora ambiguo. – Jeff
Fondamentalmente: non è possibile, come spiega la risposta di Chris Dodd. Per risolvere il problema dovrai utilizzare un nome diverso per la definizione intermedia (FINAL_DEFINE sulle prime 2 righe). –