[英]Template class with template method specialized for itself
假设我有模板类的模板类。 例:
template<typename T>
class example
{
T some_member;
template<typename X>
example& foo(X& val)
{
/* general stuff */
return *this;
}
// rest of class
};
我未能实现的是对这个方法进行专门化,该方法采用类型为<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
你可以重载,但你不能专门化,因为没有部分模板功能专业化。
example& foo(example&)
{
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.