#c #templates
#c #шаблоны
Вопрос:
Возможно ли создать специализацию шаблона для значения без дополнительного типа?
Что-то вроде этого:
template<typename T>
class foo
{
};
template<>
class foo<0>
{
};
Комментарии:
1. Ваш шаблон ожидает тип, какой смысл имеет число?
Ответ №1:
Да, но вы хотите использовать нетипичный параметр шаблона:
template<int i>
class foo
{
};
template<>
class foo<0>
{
};
Ответ №2:
С кодом, который вы показываете, это не имеет смысла. Это, однако, возможно:
template<int N>
class foo
{
};
template<>
class foo<0>
{
};
Ответ №3:
Это быстрее попробовать, чем задавать вопрос здесь. С помощью GCC (g 4.6) я получаю
temp.cc:7:12: error: type/value mismatch at argument 1 in template parameter list for 'template<class T> class foo'
temp.cc:7:12: error: expected a type, got '0'
Так что, по-видимому, ответ отрицательный
Комментарии:
1. Я сказал «что-то вроде этого», что означает, что это работает не совсем так 🙂 Мне нужно знать, возможно ли это с использованием другого синтаксиса.