[C++]libSigC++ ?

zarilla

Mitglied

versteht jemand die source von sigc++ ?
ich kann irgendwie nicht nachvollziehen wie methoden die durch
Code:
sig.connect(SigC::slot(&objekt,  &klasse::methode));
übergeben werden, aufgerufen werden können.
Zeiger auf Methoden müssen doch zb so (oder so ähnlich)
Code:
int  klasse::*ptrMethode(int par1, int par2);
deklariert werden ?!
wie kommt sigc++ auf die klasse des objektes ?
 
Zuletzt bearbeitet:
Die Funktionen werden schon als Pointer gemerkt. Das ist allerdings durch eine dicke Templateschicht kaschiert. Durch die Verwendung von Templates kann der Compiler auch die Typen checken und typmässig entsprechende Slotobjekte generieren.

Beantwortet das deine Frage?

(Die Antwort ist ohne Gewähr. Wer mich im Fehlerfall korrigeren kann, kann mit meinem Dank rechen! :) )
 
ja ich hab mich schon in einem anderen Forum informiert.
Das nennt man wohl "Template Type Deduction".
Der Typ wird aus dem Typ der Parameter der Templatefunktion erkannt, <....> ist nicht notwendig....
 
Zurück