в макрос нужно передать список инициализации
делаю по-простому
#define COMMA ,
MY_MACRO(1 COMM 2 COMM 3)
проблема возникает, когда макрос становится сложным и необходимо передавать этот список как параметр другому макросу (использую boost::preprocessor)
т.е.
#define MY_MACRO(a) int aVar[]=a; //здесь нормально
#define MY_MACRO(a) int aVar[]=SOME_OTHER_MACRO(a); //здесь проблема
во втором случае параметр раскрывается и в SOME_OTHER_MACRO передается 1,2,3 ,что интерпретируется как парамер 1 и лишние параметры 2.3
как преодолеть проблему?