Итерация переменных макросов

Я программно генерирую кучу функторов, чтобы сделать сгенерированный код более читабельным. Я пытаюсь придумать макрос, который расширит следующую строку:

SET_STATE(FunctorA,a,b);

ref a;
ref b;
FunctorA(ref a, ref b){
   this->a = a;
   this->b = b;
}

В основном он будет расширяться до первых аргументов конструктор. Вариативная часть - это количество аргументов конструктора. Можно ли выполнить цикл внутри макроса и сгенерировать этот код во время предварительной обработки, даже если это не имеет смысла для этого конкретного случая, но у меня есть некоторые функторы, которые имеют около 20 переменных, к которым у них есть доступ, будут сильно очищать мой сгенерированный код.

Все аргументы будут одного типа,будут отличаться только имена.

13
задан a3f 16 April 2015 в 08:21
поделиться