class MyClass
{
public:
void funcOne(int a, float b);
void funcTwo(std::string);
void funcThree();
};
字符串
我想创建一个容器来保存指向成员函数的指针。
std::unordered_map<int, std::function< void(/*FUNCTION ARGS*/)>> myMap;
型
由于每个成员函数都有不同的数量或参数和参数类型。我认为会有一些方法来指定函数使用可变参数模板.
1条答案
按热度按时间hgc7kmma1#
每个函数都有不同的类型。你可以使用
union
,或者更好的std::variant
来表示不同的类型。字符串
有人能让我知道在注解/FUNCTION ARGS/的地方需要的定义吗?
std::function
有魔法将void (MyClass::*)(FUNCTION ARGS)
转换为void (MyClass&, FUNCTION ARGS)
或void (MyClass*, FUNCTION ARGS)
。所以只需添加MyClass*
或MyClass&
。