¿Alguna forma de metaprogramación para generar sobrecargas para varios números de parámetros de plantilla?

Estoy tratando de crear un conjunto de plantillas de funciones que puedan tomar diferentes tipos y números de parámetros, como este:

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);

[...]

Todos los parámetros se tratan de la misma manera dentro de las funciones (como argumentos para una función de plantilla de un solo parámetro). Esto es para una biblioteca, por lo que es aceptable un esfuerzo adicional de mi parte, si significa menos esfuerzo o una interfaz más agradable para el usuario de la biblioteca.

He tenido que hacer esto varias veces para diferentes proyectos, y estoy muy cansado de tener que escribirlos manualmente a mano. Empeora cuando no sé de antemano la cantidad máxima de parámetros que necesitará el proyecto que usa la biblioteca.

Antes de comenzar a escribir un script de Python para generar todas las sobrecargas, ¿hay alguna forma de metaprogramación para que el compilador lo haga por mí?

Respuestas a la pregunta(4)

Su respuesta a la pregunta