模板值专业化

时间:2011-11-04 08:07:36

标签: c++ templates

是否可以为没有其他类型的值创建模板专门化?

这样的事情:

template<typename T>
class foo
{
};

template<>
class foo<0>
{
};

3 个答案:

答案 0 :(得分:4)

是的,但您想使用非类型模板参数:

template<int i>
class foo
{
};

template<>
class foo<0>
{
};

答案 1 :(得分:2)

使用您显示的代码没有任何意义。但是,这是可能的:

template<int N>
class foo
{
};

template<>
class foo<0>
{
};

答案 2 :(得分:0)

尝试这个比在这里提问更快。使用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'

显然答案是否定的