我有以下代码无法编译,抱怨+ =运算符不存在.+ =运算符在此处声明在A类之外.
template < typename _T >
class A {
public:
operator _T () const { return 42 ; }
};
template <typename _T >
A< _T > & operator += ( A< _T > & l, _T r ) { return l ; }
int main() {
A< int > e, f ;
e += f ;
return 0 ;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在类A中实现运算符,代码编译并工作:
template < typename _T >
class A {
public:
operator _T () const { return 42 …Run Code Online (Sandbox Code Playgroud)