c++运算符必须是非静态成员函数
c++ operator must be non static member function
可能重复:
什么是“operator=必须是非静态成员”意思是(C++)
我正试图以非成员的身份编写一个运算符=方法,其中有两个参数,如下所示:
template<class T>
T operator=(T & t, const myclass<T>& m)
{
t = m.val;
return t;
}
但是我得到一个错误,运算符=必须是非静态成员。有没有编译器标志或某种方法可以欺骗编译器让我运行这个?
感谢
没有,这是标准第13.5.3.1段规定的:
分配操作员应由非静态成员实现函数只包含一个参数。
没有,赋值运算符需要声明为成员(基本原理是iirc,防止覆盖基元或库类型的赋值)。
相关文章:
- 如何在C++中使用非静态成员函数作为回调函数
- 静态成员函数使用相同的名称时出现模板类型名称错误
- 在 nullptr 上调用无状态类的非静态成员函数是否合法?
- 为什么传递非静态成员函数会导致编译错误?
- 处理类内的回调时,必须调用对非静态成员函数的引用
- 非静态成员函数的 decltype 格式不正确吗?
- std::异步与非静态成员函数
- C++无效使用非静态成员函数?
- 未使用的C++未优化的静态成员函数/变量
- C++:如何返回指向非静态成员函数的指针?
- 使用静态成员函数而不是普通函数是否有任何开销?
- 在 stream_descriptor::async_wait 中无效使用非静态成员函数
- 为什么我不能像这样在静态成员函数中调用静态成员变量?
- 无法在clang Linux中分配非静态成员函数,但我可以在Visual Studio Windows中分配
- 在类定义中推导内联静态成员函数的返回类型
- `enable_if()`以禁用模板化类的静态成员函数声明
- 错误:无效使用非静态成员函数"int test::hotplug_callback(libusb_contex
- 常量静态成员函数
- 使用 vector.sort() 的非静态成员函数无效使用
- 从静态成员函数访问私有非静态类变量 - C++