Я пытаюсь создать набор шаблонов функций, которые могут принимать разные типы и количество параметров, например:
template <T0>
void call(T0 arg0);
template <T0, T1>
void call(T0 arg0, T1 arg1);
template <T0, T1, T2>
void call(T0 arg0, T1 arg1, T2 arg2);
template <T0, T1, T2, T3>
void call(T0 arg0, T1 arg1, T2 arg2, T3 arg3);
template <T0, T1, T2, T3, T4>
void call(T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4);
[...]
Все параметры обрабатываются одинаково внутри функций (как аргументы для функции шаблона с одним параметром ). Это для библиотеки, поэтому дополнительные усилия с моей стороны приемлемы, если это означает меньше усилий или более приятный интерфейс для пользователя библиотеки.
Мне приходилось проделывать это несколько раз для разных проектов, и я очень устал от необходимости вручную писать их все вручную. Становится хуже, когда я заранее не знаю максимальное количество параметров, которое понадобится проекту, использующему библиотеку.
Прежде чем я начну писать сценарий Python для генерации всех перегрузок, есть ли какой-нибудь способ метапрограммирования, чтобы компилятор сделал это вместо меня?