Я имею дело с макросами (это макросы, вызывающие макросы; поэтому шаблоны исключены).
Вот что я хочу:
foo(3, a, b1, c1) --> foo1(a, b1, c1);
foo(5, a, b1, c1, b2, c2) -> foo2(a, b1, c1, b2, c2);
foo(7, a, b1, c1, b2, c2, b3, c3) -> foo3(a, b1, c1, b2, c2, b3, c3);
Итак, в общем, я хочу иметь возможность выполнять «функцию» n -> (n-1) / 2 во время расширения макроса. Это возможно?
[PS, если вам не нравятся мои вопросы; Я поддерживаю ваше право понижать голос; Мой худший вопрос пока только -17, так что, возможно, мы сможем побить этот рекорд; однако, пожалуйста, дайте мне знать почему мой вопрос технически недействителен.]
EDIT:
Foo принимает переменную # аргументов в форме:
foo(N, a1, b1, a2, b2, ... a_N, b_N) -> foo##N(a1, b1, a2, b2, ... a_N, b_N);
EDIT:
Всем близким. Это совсем другой вопрос. Первый - о том, «как мне посчитать количество аргументов в макросе». (на что был хороший ответ в списке рассылки).
Этот вопрос является вопросом: учитывая, что я посчитал количество аргументов, как мне его рассылать?