一张地图中保存的不同功能指针签名的地图

问题描述

我想在不同的映射中保存不同签名的函数指针。然后,我想将所有这些地图保存在一张地图中。我目前的方法

union sig_u {
    func_signature1 fs1;
    func_signature2 fs2;
};

std::map<std::string,sig_u> fs1_insts = {
    {"default_function",sig_u{.fs1=&PointerToDefault}},{"dummy_overloaded",sig_u{.fs1=&PointerToDummyOverloaded}}
};

std::map<std::string,sig_u> fs2_insts = {
    {"important_function",sig_u{.fs2=&PointerToImportant}},sig_u{.fs2=&PointerToDummyOverloaded}}
};

std::map<std::string,std::map<std::string,sig_u> > signature = {
   {"group1",fs1_insts},{"group2",fs2_insts}
};

然后我想以给定的方式调用函数

signature["group1"]["dummy_overloaded"](...);

是否有更好的方法来获得这种行为?我是C ++编程的新手。我考虑过一些模板,但找不到任何解决方案。非常感谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)