Einer Funktion eine Funktion übergeben ?
-
hmm, ok das klappt, aber mein code von grade wahr falsch, wie kann ich eine Funktion deklarieren, die als Rückgabe tyü einen Pointer auf eine Funktion hat ?
void (*FunctionPointer)(int) CALLERFUNC(void (*FunctionPointer)(int), int p) { return FunctionPointer; }das geht, da meckert der compiler, das CALLERFUNC undeclared ist...
GRuß Chris
-
Vermutlich stimmt die Klammerung nicht (wie das genau aussehen muß, bin ich auch nicht sicher - am elegantesten sieht es mit einem typedef aus:)
typedef void (*fptr)(int); fptr CALLERFUNC(fptr Funtion, int p);
-
hey gute Idee, hab ich jetzt garnicht mehr dran gedacht
danke!Gruß Chris
-
So gehört das:
void ( *call( void ( *ptr )( int ), int ) )( int )Aber Typedefs sind auf jedenfall schöner!

-
Naja, ich würde std::tr1::function benutzen. DAS ist schöner. :p Vorallem kann man das dann auch für Funktionen in Klassen benutzen.
// Funktion: float foo(int x, int y) { return x / y; } std::tr1::function<float (int x, int y)> f; f = &foo; cout << f(1, 2);
-
schöner? da steht tr1 im code. namespace mit ner zahl drin... iiiiih!
-
-
:p
-
TR1 ist eine offizielle ISO-C++-Standard Erweiterung. Was willst du also?
-
darauf hinweisen, dass es nicht zum standard gehört :p
Fragen zu bestimmten Funktionen und Abläufen in C++ (nach dem ISO-Standard)

-
Sind doch ansich beides gute Lösungen, obwohl die typedef variante mit eher zu sagt... aber die tr1 variante ist genauso gut!
Gruß Chris