在std :: map中使用std :: function

时间:2015-03-21 15:29:18

标签: c++ c++11 dictionary std-function

我想在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;

感谢帮助

1 个答案:

答案 0 :(得分:11)

您已将Callback声明为函数(返回std::function),而不是类型。您需要一种类型来声明您在地图中存储的内容。我想你想要

typedef std::function<void()> Callback;