C++ 在std::map中使用std::函数

C++ 在std::map中使用std::函数,c++,c++11,dictionary,std-function,C++,C++11,Dictionary,Std Function,我想在std::map中使用std::函数,请遵循以下代码: #include <functional> #include <map> class MyClass { ... std::function<void()> Callback(); std::map<std::string, Callback> my_map; ... } #包括 #包括 类MyClass{ ... std::函数回调(); 映射我的地

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

#include <functional>
#include <map>

class MyClass {
    ...
    std::function<void()> Callback();
    std::map<std::string, Callback> my_map;
    ...
}
#包括
#包括
类MyClass{
...
std::函数回调();
映射我的地图;
...
}
map收到一个键和一个T,但a不知道我的代码中有什么错误,他无法访问std::map函数(insert、end、find…)

使用typedef,他可以运行。但是为什么std::function不运行呢

我首先问:有什么问题

前:如何解决--代码样本请=D


感谢帮助

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

typedef std::function<void()> Callback;
typedef std::函数回调;

谢谢,现在我了解了如何在my_映射中插入成员方法?