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

use*_*612 2 c++ dictionary c++11 std-function

我想在std :: map中使用std :: function,请遵循以下代码:

#include <functional>
#include <map>

class MyClass {
    ...
    std::function<void()> Callback();
    std::map<std::string, Callback> my_map;
    ...
}
Run Code Online (Sandbox Code Playgroud)

std :: map收到一个Key和一个T,但不知道我的代码中有什么错误,他没有访问std :: map函数(insert,end,find ...)

使用typedef,他运行.但是为什么std :: function没有运行?

我最喜欢的地方:问题是什么?

之前:如何解决? - 代码示例请= D;

谢谢你的帮助

Mik*_*our 11

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

typedef std::function<void()> Callback;
Run Code Online (Sandbox Code Playgroud)