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

时间:2015-07-24 13:09:26

标签: c++ templates c++11

假设我有模板类的模板类。例如:

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

1 个答案:

答案 0 :(得分:3)

你可以重载,但你不能专门化,因为没有部分模板功能专业化。

example& foo(example&)
{
}