2015-04-11 15 views
10

Na przykład, czy istnieje jakiś odpowiednik prawny tego?Czy można zadeklarować typ funkcji, który używa się jako argument w C++?

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

Powoduje błąd "nieznana nazwa SelfReferencingFnPtr".

Najlepsze, co udało mi się wymyślić, to funktor, którego operator() akceptuje swój własny typ.

+2

Byłaby to definicja rekursywna, czyż nie? –

+1

@LightningRacisinObrit, czy mówimy o składni C++ lub o ogólnym pomyśle? Ponieważ wydaje się nie bardziej rekursywna niż struktura ze wskaźnikiem do samego siebie. – zneak

+0

Obie. Nie zgadzam się z twoim ostatnim stwierdzeniem. To bardziej przypomina strukturę z instancją samą w sobie. Pewno? 'typedef void (* abc) (int, void (*) (int, void (*) (int, void (*) (int, ...............' –

Odpowiedz

Powiązane problemy