This is similar to another question I've asked, but, I've created an expression class that works like so:
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)
where GreaterThan is a previously defined function. And I am wondering why I can't do this:
expression<int, int> exp(10, 11, >);
particularily when > is overloaded as
bool operator>(int a, int a){return (a > b);}
which is identical to GreaterThan:
bool GreaterThan(int a, int b){return (a > b);}
A function that returns bool and takes two arguments.