Wie sieht ein Funktionszeiger auf eine Funktion aus, die eine Array-Referenz liefert?
-
Hallo!
Ich möchte einen Funktionszeiger, der auf eine Funktion zeigt, die eine Array-Referenz (10 int-Elemente) zurückliefert und einen int-Parameter nimmt.
Ich kriege es einfach nicht hin ohne typedef.
Muss aber doch möglich sein, oder?Folgendes hab ich probiert:
int (&)[10] (* func_ptr)(int); (int (&)[10]) (* func_ptr)(int);
-
Nachtrag: also mit typedef geht es ganz einfach so:
typedef int(& RefTo10ElementIntArray)[10]; RefTo10ElementIntArray (* func_ptr)(int);Aber ohne?
Das hat keinen praktischen Nutzen, die Frage ist aus reinem Interesse!
-
Zeiger-Artist schrieb:
Hallo!
Ich möchte einen Funktionszeiger, der auf eine Funktion zeigt, die eine Array-Referenz (10 int-Elemente) zurückliefert und einen int-Parameter nimmt.int (&(*func_ptr)(int))[10]
-
Hier bitte:
int (&(a(float, double)))[42] { static int blub[42] = {}; return blub; } int main() { int (&((*foo)(float, double)))[42] = &a, freak; }Ich hab dir sogar noch einen int freak draufgesetzt

-
Danke! Da haben wir den Beweis, dass C++ eben doch für Masochisten ist!
-
Wahnsinnige können sich in jeder Sprache selbst quälen (obwohl es in Perl wohl am einfachsten ist).
Übrigens:
std::tr1::array<10> &foo(float, double);
-
seldon schrieb:
std::tr1::array<10> &foo(float, double);Bist Du sicher?
-
Da fehlt doch der Datentyp^^
-
Richtig, richtig, mein Fehler.
std::tr1::array<int, 10> &foo(float, double);Ich werde mich umgehend kasteien gehen.