hier treiben sich ja einige C+-Experten und Template-Magier herum, also riskiere ich mal eine Frage.
Ich habe eine Klasse, die eine Funktionssignatur als Template-Parameter nehmen soll. Also zum Beispiel so:
Code: Alles auswählen
template <typename TFunc>
class Signal { };
Signal<void (const Param&)> blaWithFunction;
Code: Alles auswählen
void Connect( TFunc* funcPointer ) { ... }
Code: Alles auswählen
template <typename TClass>
void Connect( TClass* receiver, (TClass::*TFunc) memberFuncPointer);
Hm. Wobei sich mir dann die Frage stellt, wie ich die Aufrufparameter dann weiterleiten soll, wenn ich die Anzahl und Typen nicht kenne. Ich glaube, ich habe hier doch mehr Nachholebedarf, als ich mir ursprünglich erhoffte.
Randbemerkung: Eine Eigenimplementation einer Signal-Klasse ist hier nötig, weil a) die Primitive zur Thread-Synchronisierung vorgegeben sind, b) ich unbedingt Scoped Connections haben will, ohne jeden Receiver von irgendwas ableiten zu müssen und c) die gängigen Implementation RIESIG sind. Ich brauche keine Rückgabewerte, Akkumulatoren und den ganzen sonstigen Scheiß. Ich will 0 bis x Klassenmethoden (und nach Möglichkeit auch statische Funktionen) an ein Signal hängen und fertig.
Ich google derweil mal weiter. Vielleicht finde ich eine kleinere fertige Implementation da draußen, die das schon erledigt. Bis dahin schonmal Danke im Voraus!
Bye, Thomas