Возникла необходимость в макросе с переменным числом параметров. Что-то типа такого (псевдокод):
#define AAA(a1) BBB(a1);
#define AAA(a1) BBB(a1); \
BBB(a1);
#define AAA(a1, a2, a3) BBB(a1); \
BBB(a2); \
BBB(a3);
// и т.д.
Использовать планируется так:
AAA(obj.Do1(),
obj.Do2(),
obj.Do3()
);
Ожидаемый вывод:
BBB(obj.Do1());
BBB(obj.Do2());
BBB(obj.Do3());
Поковырял boost::preprocessor но прояснение не наступило, слишком муторная там документация. Как сделать макрос с переменным количеством параметров?