c++ - map string to function -


i'm trying not work error:

must use ‘.’ or ‘->’ call pointer-to-member function in ‘((test*)this)->test::mapping.std::map<_key, _tp, _compare, _alloc>::operator[], void (test::*)(int), std::less >, std::allocator, void (test::*)(int)> > >(((const key_type)(& str))) (...)’, e.g. ‘(... ->* ((test*)this)->test::mapping.std::map<_key, _tp, _compare, _alloc>::operator[], void (test::*)(int), std::less >, std::allocator, void (test::*)(int)> > >(((const key_type)(& str)))) (...)’

test.h:  #include.... using namespace std; class test {     public:        std::map<std::string, void(test::*)(int)> mapping;     void add(int); };  test.cpp:  test::test() {    mapping["add"]=&test::add;    string str = "add";    this.*mapping[str](3);// dosnt work!!!! }  void test::add(int a) {    cout<<a<<endl; } 

dosnt work, please me.

as this pointer, need use ->* instead of .*. additionally, parentheses needed.

(this->*mapping[str])(3); 

Comments

Popular posts from this blog

commonjs - How to write a typescript definition file for a node module that exports a function? -

openid - Okta: Failed to get authorization code through API call -

ios - Change Storyboard View using Seague -