这种情况如何消除几百个 if/else

aqtata · 6 天前 · 213 次点击

运行时从外部读取一个 16 进制数字,然后调用对应的函数,比如读取到1F3,那么就调用函数foo_1f3,函数参数也是有编号的,规律是这样:

void foo_1f0(myclass_1f0& val);
void foo_1f1(myclass_1f1& val);
void foo_1f2(myclass_1f2& val);

之前 C#是用的反射,很容易实现。到 C++这不知道怎么搞比较优雅,目前有上百个 if/else 去判断然后调用。

C++这边可以用到 C++20 ,不知道有什么酷的解决方法?

举报· 213 次点击
登录 注册 站外分享
1 条回复  
lichao 小成 6 天前
std::map
返回顶部