Wie funktioniert das: sigc::mem_fun(test_obj,&test::on_button_clicked)
-
Wie funktioniert so ein Aufruf?
sigc::mem_fun(test_obj,&test::on_button_clicked)Es hat wohl eindeutig was mit Templates zu tun, aber wie müsste eine sehr einfache Definition für mem_fun aussehen, damit das klappt?
Ich verstehe nämlich nicht, warum man die Typen nicht angeben muss (ähnlich wie bei std::make_pair)
-
Das ist ein Funktionszeiger. Muss nix mit Templates zu tun haben.
Also keine "normalen" Funktionszeiger, sondern einer auf ne Member. Darum wird ja auch das Objekt noch übergeben, was nötig ist, um in der Funktion darauf zuzugreifen.
Schau mal hier rein:
http://www.newty.de/fpt/index.htmlSollte das auch irgendwo erwähnt werden.
-
Das schaut doch ganz stark nach Gtk+ Singal handling aus:
http://libsigc.sourceforge.net/libsigc2/docs/reference/html/group__functors.html
-
Beim Aufruf einer Funktion, die als Template vorliegt, kann der Compiler die Typen der Templateparameter aus den Funktionsargumenten herleiten.