带有指向不同方法的指针的矢量

Vector with pointers to Different methods

本文关键字:指针 方法      更新时间:2023-10-16

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

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

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

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

因为在那里我收到此错误:

错误 C2665 'std::元组::元组':2 个重载都无法转换所有参数类型

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

更喜欢 lambda 而不是 std::bind ; 它们使生活更加轻松:

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