Я хотел бы добавить функцию-член в случае, если последний параметр шаблона моего класса явно установлен в определенное значение. Я не понимаю, как я могу повторно использовать код из предыдущего определения.Специализация частного шаблона
упрощенный пример того, что я хотел бы получить компиляции:
template <int A, int B, int C>
struct S
{
void fun() {}
};
template <int A, int B>
struct S<A,B,0>
{
void fun1() {}
};
template <int A>
struct S<A,0,0>
{
void fun2() {}
};
int main()
{
S<0,0,0> s;
s.fun();
s.fun1();
s.fun2();
return 0;
}
Мне нужно найти решение с C++ 03 компилятором.
Значение по умолчанию для параметра шаблона предоставляет специализацию? –
@ Koushik: В зависимости от того, что вы имеете в виду. В основном шаблоне вы можете указать 'int B = 1', а затем' S 'будет соответствовать' S 'специализации (с' A = X'), если это то, что вы спрашиваете –
да, это то, что я спросил. из-за отсутствия лучшего предложения. –