带有非模板类的C ++类模板?

时间:2015-09-30 03:53:07

标签: c++ templates

编译以下代码

template<typename T>
class t1 {
};

class t1 {
};

给出以下错误

error: template argument required for ‘class t1’

自从我使用C ++足以深入研究模板(我决定重新学习并学习C ++ 11/14)以来,已经有好几年了,所以我可能会弄错,但我认为这是合法的。

有人可以提供建议吗?如果你想做这样的事情,你会怎么做呢?

2 个答案:

答案 0 :(得分:2)

不,你不能这样做。

与函数模板不同,类模板不能重载。 t1已被声明为类模板,您唯一能做的就是专门化它:

template <>
class t1<int> {
};

答案 1 :(得分:0)

你可以使用可变参数模板做喜欢这个:

myclass<>

但我认为除了模板元编程之外没有什么用处,你仍然需要使用模板语法:isAccessibilityElement = NO