препроцессор и ,
От: WiseAlex Беларусь  
Дата: 04.05.06 12:14
Оценка:
в макрос нужно передать список инициализации
делаю по-простому
#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
как преодолеть проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.