me siento a mi manera en la plantilla de meta-programación, poco a poco y no estoy seguro de cómo poner en práctica lo siguiente:C++ especialización de plantilla basada en el valor de tiempo de compilación
// hpp file
enum MyEnum { Alive = 0, Dead };
class A {
public:
template<typename T, typename O, MyEnum ls>
static int Register();
};
// elsewhere in the code...
A::Register<IType1, Type1, Dead>();
En tiempo de compilación voy a saber qué valor enum el tercer tipo de plantilla es (invariante en tiempo de compilación), Dead or Alive. ¿Es posible definir dos cuerpos de la función de Registro, algo así como:
// desired hpp file
template<typename T, typename O, Alive>
int Register();
template<typename T, typename O, Dead>
int Register();
// corresponding desired .inc file
template<typename T, typename O, Alive>
int Register() { // Alive specific implementation ... }
template<typename T, typename O, Dead>
int Register() { // Dead specific implementation ... }
He echado un vistazo a: C++ Template Specialization with Constant Value
pero no he sido capaz de averiguar cómo hacer que se aplica a las esta situación.
funciona perfecto! Gracias Pubby – Short