mi sento la mia strada nel modello meta-programmazione, lentamente e non sono sicuro come implementare il seguente:C++ modello di specializzazione in base al valore di compilazione
// 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>();
Al momento della compilazione saprò cosa enum value il terzo tipo di template è (invariant in fase di compilazione), Dead or Alive. E 'possibile definire due corpi per la funzione di Registrazione, qualcosa di simile:
// 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 ... }
Ho dato un'occhiata a: C++ Template Specialization with Constant Value
ma non sono stato in grado di capire come farlo si applica ai questa situazione.
funziona perfettamente! Grazie Pubby – Short