Dies ist vergleichbar mit einer anderen Frage, die ich gefragt habe, aber ich habe einen Ausdruck Klasse geschaffen, die wie so funktioniert:Können Operatoren als Funktionen verwendet werden? (C++)
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)
wo GreaterThan ist eine zuvor definierte Funktion. Und ich frage mich, warum kann ich dies nicht tun:
expression<int, int> exp(10, 11, >);
particularily wenn> als
Überlastungbool operator>(int a, int a){return (a > b);}
, die GreaterThan identisch ist:
bool GreaterThan(int a, int b){return (a > b);}
eine Funktion, die Bool zurückgibt und nimmt zwei Argumente.
Was diese magische ist 'Integer' Typ Sie sprechen? – GManNickG
Nur eine Beispielklasse, die nicht mit der Verwendung von Operatorüberladungen zusammenhing. –