Funktionssignatur zerlegen / zusammensetzen
-
Ich suche ein Möglichkeit von folgendem:
bool (*foo)(int);das
//typedef bool ret_type; //typedef int arguments;zu extrahieren, ODER andersrum (also wieder zusammensetzen)
Anwendung: Für ein Functor, der Funktionen kapselt:
// Nur Beispielhaft template </*???*/> struct custom_functor { // typedef ? // alles groß = Template Argument (bisher) RET_TYPE operator()(ARGUMENTS ... args) { return FUNC(args ...); } };Das ganze kann ich zwar theoeretisch ausdrücken, aber mit Templateparametern, bei denen sich mir eher der Magen umdreht (mit Dopplungen, also: Funktionstyp, Rückgabetyp, Funktionszeiger, Argumente).
EDIT: Meine Versuche mit decltype für den Rückgabetyp haben nicht ganz gefruchtet, ich hatte: decltype(FUNC()); versucht
-
std::function kennst du?
-
*facepalm*
Aus Interesse schau ich mir aber mal das aus der Standardbibliothek an.
EDIT: Oh, da hätte ich glaube noch lange gebastelt, da wäre ich nicht so schnell drauf gekommen. (Ich meine damit nicht std::function, sondern wie es realisiert ist)