考虑以下程序:
#include<functional>
typedef std::function< int( int ) > F;
F operator+( F, F )
{
return F();
}
int f( int x ) { return x; }
int main()
{
operator+(f,f); // ok
f+f; // error: invalid operands to binary expression
}
为什么最后一行f+f;
无法编译?为什么不等同于operator+(f,f);
?参考该标准将不胜感激。