假设我有模板类的模板类。例如:
template<typename T>
class example
{
T some_member;
template<typename X>
example& foo(X& val)
{
/* general stuff */
return *this;
}
// rest of class
};
我未能实现的是对该方法进行专门化,该方法采用类型示例的参数对象&lt; T> (与来电者的类型相同)。 举例说明它如何起作用:
example<int> exampleObj;
example<int> sameTypeObj;
int diffrentType1;
example<double> diffrentType2;
exampleObj.foo(diffrentType1); // general template used
exampleObj.foo(diffrentType2); // general template used
exampleObj.foo(sameTypeObj); // specialization used
答案 0 :(得分:3)
你可以重载,但你不能专门化,因为没有部分模板功能专业化。
example& foo(example&)
{
}