Это похоже на другой вопрос, который я задал, но я создал класс выражений, который работает следующим образом:
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 и принимает два аргумента.