Transponer argumentos booleanos de función de plantilla a argumentos de función de tiempo de ejecución con metaprogramación de plantilla

Tengo una función que toma varios argumentos de plantilla booleana:

template<bool par1, bool par2, bool par2>
void function(int arg1, int arg2, int arg3);

Quiero generar automáticamente en tiempo de compilación (con cualquier plantilla mágica, con C ++ 11 si es necesario) una tabla (o algo equivalente como en las estructuras graciosas de la metaprogramación de C ++) de los punteros de función a toda la combinación de los valores de los parámetros de la plantillapar*, para que pueda construir una función que tome estos parámetros de plantilla como argumentos de tiempo de ejecución y reenvíe a la creación de instancias de plantilla correcta:

void runtime_function(bool par1, bool par2, bool par3, int arg1, int arg2, int arg3);

Creo que esto se puede hacer si en lugar de una función de plantilla se quisiera hacer lo mismo con las clases, gracias a los argumentos de la plantilla de plantilla:

template<template<bool> class T> class CombinationsOfTemplateParameters;
template<template<bool, bool> class T> class CombinationsOfTemplateParameters;
template<template<bool, bool, bool> class T> class CombinationsOfTemplateParameters;
//and so on, up to some implementation defined hard limit.

Pero hasta donde sé, no hay manera de apuntar a una función de plantilla genérica, dejando sus parámetros de plantilla sin especificar. Por lo tanto, no sé cómo pasarlo a alguna clase auxiliar en su lista de parámetros de plantilla, en primer lugar.

¿Hay alguna manera de resolver este problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta