czuję moją drogę do szablonu meta-programowania, powoli i nie jestem pewien, jak wdrożyć następujące:C++ specjalizacja szablonu na podstawie kompilacji wartości czasu
// 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>();
w czasie kompilacji będzie wiem co wartość wyliczeniowa trzeci typ szablonu to (niezmienna w czasie kompilacji), martwa lub żywa. Czy jest możliwe aby zdefiniować dwa ciała dla funkcji rejestru, coś jak:
// 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 ... }
Brałem spojrzeć na: C++ Template Specialization with Constant Value
ale nie byłem w stanie dowiedzieć się, jak zrobić to dotyczy ta sytuacja.
Works perfect! Dziękuję Pubby – Short