boost::bind in map stecken
-
Wie muss ich das genau anstellen ?
Ich habe eine Klasse, die verschiedene Funktionen hat,
welche alle die selbe Syntax besitzen:
myclass::myfunc(const stringstream& stream);
Die Klasse soll nun eine map bekommen, die diese
als Function/Methodpointer aufnimmt:
std::mapstd::string,?boost::bind? mymap;
Wie muss ich da nun bind deklarieren ?phlox
-
warum nicht boost::function in der map speichern?
-
das verrate ich nur, wenn du verrätst, warum du nicht einfach methodenzeiger nimmst.
-
volkardus schrieb:
das verrate ich nur, wenn du verrätst, warum du nicht einfach methodenzeiger nimmst.
Würde es auch tun. hauptsache es funktioniert, wär mir sogar recht, wenn
ich nicht boost benötige für sowas. (Für Threads nehm ich es dann wieder ;))
-
#include <iostream> #include <string> #include <map> using namsepache std; struct Foo{ int square(int x){ return x*x; } int half(int x){ return x/2; } }; typedef int(Foo::*fptr)(int); int main(){ map<string,fptr> m; m["s"]=&Foo::square; m["h"]=&Foo::half; Foo f; cout<<(f.*m["s"])(10)<<endl; cout<<(f.*m["h"])(10)<<endl; };
-
hm, wenns so einfach ist

thx.