我正在将旧的 C++ 代码移植到有效的 C++ 安全版本。我读到了有关此标志的问题,但由于我没有选择是否要这样做,因此必须这样做。在使用模板时,我遇到了重载等于运算符的问题。
我试图将功能从头文件移动到实际的 cpp,但这没有任何效果。删除模板有效,但由于需要模板,它只是告诉我问题出在哪里。
template <typename T1, typename T2>
MyClass& operator = ( const boost::tuple<T1,T2> & _v )
{
//Some operations
return *this;
}
编译此代码会引发以下错误:
'operator=' should return a reference to *this
指向准确的线return *this;
MyClass 不继承任何其他类。这是一个 effc++ 错误还是我遗漏了什么?