这类似于我提出的另一个问题,但是,我创建了一个表达式类,其工作方式如下:
expression<int, int> exp(10, 11, GreaterThan);
//expression<typename T, typename U> exp(T val1, U val2, oper op);
//where oper is a pointer to bool function(T, U)
其中 GreaterThan 是先前定义的函数。我想知道为什么我不能这样做:
expression<int, int> exp(10, 11, >);
特别是当 > 被重载为
bool operator>(int a, int a){return (a > b);}
这与 GreaterThan 相同:
bool GreaterThan(int a, int b){return (a > b);}
返回 bool 并接受两个参数的函数。