1) Why is the macro MSG not expanded in the following expression?
#define MSG Hello #define HELLO(name) MSG ## name void HELLO(Dave) () {} Using
gcc -E -P test.cpp Output:
void MSGDave () {} MSG name expands to Hello Dave. And MSG # name expands to Hello "Dave". So what causes gcc not to expand MSG ## name?
2) Is there a workaround?
Is there a preprocessor directive like defined(x), such as expand(x)?