Funktionszeiger eines Operators in C ++

8

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

    
Ned Bingham 25.06.2013, 14:23
quelle

2 Antworten

3

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

%Vor%     
user763305 25.06.2013, 14:42
quelle
1

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.

    
Mark Ransom 25.06.2013 15:00
quelle