最佳方法定义函数,该函数返回模板对象的实例或对模板对象的引用

时间:2018-08-10 01:01:52

标签: c++ templates

在下面的示例类中,两个赋值运算符定义之间有什么区别?有没有?它们似乎都以相同的方式进行编译/操作。

template <typename T>
struct S
{
    T internal;
    //#1
    S& operator= (const T& other)
    {
        internal = other;
        return *this;
    }

    //#2
    S<T>& operator= (const T& other)
    {
        internal = other;
        return *this;
    }
}

一个更笼统的问题可能是“在返回(引用/指向)模板化对象时,您必须指定模板特殊化类型吗?或者,如果您不指定它,编译器会自动提供特殊化类型吗? “

0 个答案:

没有答案