2015-04-11 10 views
10

Zum Beispiel gibt es eine rechtliche Entsprechung dazu?Ist es möglich, einen Funktionstyp zu deklarieren, der sich selbst als Argument in C++ verwendet?

typedef void (*SelfReferencingFnPtr)(int, SelfReferencingFnPtr); 

Mit clang verursacht dies den Fehler "unbekannter Name SelfReferencingFnPtr".

Das Beste, was ich mir vorstellen konnte, ist ein Funktor, dessen operator() seinen eigenen Typ akzeptiert.

+2

Es wäre eine rekursive Definition, nicht wahr? –

+1

@LightningRacisinObrit, reden wir in Bezug auf C++ Syntax oder über die allgemeine Idee? Weil es nicht mehr rekursiv erscheint als eine Struktur mit einem Zeiger auf sich selbst. – zneak

+0

Beide. Ich stimme Ihrer letzten Aussage nicht zu. Dies ist mehr wie eine Struktur mit einer Instanz von sich selbst. Sicherlich? 'typedef void (* abc) (int, void (*) (int, void (*) (int, void (*) (int, ...............' –

Antwort

Verwandte Themen