c++ - 指向不同方法的 vector

标签 c++ c++11

我想在我的 vector 中收集指向不同方法的指针(正确映射):

std::map < sf::Keyboard::Key, std::function<void()> > keyData;

现在,当我想向这个 vector 中添加一些东西时,我遇到了问题。

inputManager.addKeyToCheck(sf::Keyboard::A, std::bind(&mv::Scene::moveViewLeft, mv::Scene::getInstance()));

因为我得到这个错误:

Error C2665 'std::tuple::tuple': none of the 2 overloads could convert all the argument types

我需要存储指向不同类方法的指针,但我不知道该怎么做。任何其他解决方案或想法如何修复此代码?

最佳答案

std::bind 更喜欢 lambdas;它们让生活变得更轻松:

inputManager.addKeyToCheck(sf::Keyboard::A, []() {
    mv::Scene::getInstance().moveViewLeft();
});

关于c++ - 指向不同方法的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43263003/

相关文章:

c++ - 编译器对析构函数省略的自由度是多少?

c++ - 是否有 decltype 的快捷方式

c++ - 用于自定义间距的 .clang-format 选项

c++ - 动态链接 boost 库和自动链接不能正常工作?

c++ - 如何在 Eclipse 中启用 C++11 支持?

c++ - 传递数组指针并在函数内部使用

c++ - 为什么这段代码会出现 "exception spec is more lax than base"错误?

c++ - 如何从文件中读取特定数据到数组字符串

c++ - 我需要以反向方式复制一个长数组 我需要一个系统函数,例如 memcpy 有吗?

java - 使用 Excel 工作表中的数据填充 Web 文本字段,提交页面,重复?