我想在std :: map中使用std :: function,请遵循以下代码:
#include <functional>
#include <map>
class MyClass {
...
std::function<void()> Callback();
std::map<std::string, Callback> my_map;
...
}
std :: map收到一个Key和一个T,但不知道我的代码中有什么错误,他没有访问std :: map函数(insert,end,find ...)
使用typedef,他运行。但是为什么std :: function没有运行?
我最喜欢的地方:问题是什么?
之前:如何解决? - 代码示例请= D;
感谢帮助
答案 0 :(得分:11)
您已将Callback
声明为函数(返回std::function
),而不是类型。您需要一种类型来声明您在地图中存储的内容。我想你想要
typedef std::function<void()> Callback;