我有这张地图:
std::map<std::string, std::function<void (std::string)>> cMap;
我不太明白如何为它增值?
我试过
cMap.insert(std :: make_pair(“test”,&amp; Manager :: testfunc));
和
cMap [“test”] =&amp; Manager :: testfunc;
但是我得到了“未能专门化功能模板”错误。
我不熟悉函数指针,我老老实实地花了小时谷歌搜索和阅读问题和答案,但我找不到任何有用的东西。请帮帮我。
编辑: 目前,Manager :: testfunc只是:
void Manager::testfunc (std::string value) { }
答案 0 :(得分:2)
为了使成员函数指针可以调用,必须将其绑定到对象。因此,提供了Manager
对象(例如,Manager m
),您可以使用std::bind
绑定成员函数(例如void Manager::foo(std::string const&)
),然后将其插入{{1}如下:
std::map