Ich habe also eine Funktion, die einen Funktionszeiger als Eingabe erwartet und dessen Prototyp etwa so aussieht:
%Vor%Ich habe mich gefragt, ob ich einen Operator für diesen Funktionszeiger übergeben kann. Speziell dieser eingebaute Operator:
%Vor%Ich habe es versucht:
%Vor%und habe diese Art von Fehler:
%Vor%Ich habe es versucht:
%Vor%und habe diese Art von Fehler:
%Vor%Ich habe in der Dokumentation nach dieser Situation gesucht, aber ich bekomme Dinge über den "Adresse von" Operator (Operator & amp;) statt Dinge über die Adresse eines Operators ....
Bearbeiten:
Siehe vorherige Frage Grundlegende Operatorfunktionen explizit in C ++ aufrufen
Der eingebaute Operator | das dauert zwei int
und gibt ein int
kann nicht über die Notation operator|
aufgerufen werden. Zum Beispiel kompiliert das folgende nicht
Da Operatoren nicht als Funktionen verfügbar sind, bietet der Standard eine Reihe von Funktoren, die den Operatoren entsprechen. Die bekannteste davon ist std::less
, das ist der Standard-Vorlagenparameter für Sortierreihenfolgen, Mengen und Zuordnungen.
Die vollständige Liste finden Sie im Header functional
. Dasjenige, das Ihren Anforderungen am nächsten kommt, ist std::bit_or
.
Leider werden diese als Template-Klassen mit operator()
anstelle von Funktionen implementiert, so dass sie für Ihren speziellen Anwendungsfall nicht geeignet sind. Sie sind besser für Vorlagen geeignet.
Tags und Links c++ function-pointers operators