繁体   English   中英

模板类,其模板方法专用于自身

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM