transponha os argumentos booleanos da função template para os argumentos da função de tempo de execução com a metaprogramação de template

Eu tenho uma função que leva vários argumentos de modelo booleano:

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

Eu quero gerar automaticamente em tempo de compilação (com qualquer modelo mágica, com C ++ 11, se necessário) uma tabela (ou algo equivalente como nas estruturas engraçadas de metaprogramação C ++) dos ponteiros de função para toda a combinação dos valores de os parâmetros do modelopar*, para que eu possa construir uma função que tome esses parâmetros de modelo como argumentos de tempo de execução e encaminhar para a instanciação de modelo correta:

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

Eu acho que isso pode ser feito se, em vez de uma função de modelo, quisermos fazer o mesmo com as classes, graças aos argumentos do modelo de modelo:

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.

Mas, até onde sei, não há como apontar para uma função de modelo genérica, deixando os parâmetros do modelo não especificados. Portanto, não sei como passá-lo para alguma classe auxiliar em sua lista de parâmetros de modelo, em primeiro lugar.

Existe alguma maneira de resolver este problema?

questionAnswers(1)

yourAnswerToTheQuestion