我发现以下内容在语法上是正确的:
#include <iostream>
using namespace std;
template<class T> bool operator<= (const T& left, const T& right)
{
cout<<"overloaded"<<endl;
return left<=right;
}
int main()
{
cout<<(10<=5)<<endl;
return 0;
}
但是好像从来没有被调用过。
要调用重载运算符,至少一个操作数需要具有类或枚举类型:
如果表达式中运算符的操作数不具有类或枚举类型,则假定该运算符是内置运算符并根据 [expr.compound] 进行解释。