【问题标题】:Using std::function in std::map在 std::map 中使用 std::function
【发布时间】:2015-03-21 15:29:17
【问题描述】:

我想在 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 函数(插入、结束、查找...)

使用typedef,他跑了。但是为什么std::function不跑?

我首先:有什么问题?

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

感谢帮助

【问题讨论】:

  • 如何在my_map中插入成员方法?

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


【解决方案1】:

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

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

【讨论】:

  • 谢谢,我明白了
猜你喜欢
  • 2018-11-06
  • 2014-04-15
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多