C ++将枚举字段名称转换为字符串

问题描述

我有一个可以自动生成许多C ++代码的工具。它产生的一件事是很多枚举。例如:

   typedef enum InsId
    {
        kInsH  = 0,kInsM1  = 1,kInsM2  = 2,kNumIns  = 3     
    } InsId;

我有一些代码必须将字符串转换为上述枚举:“ kInsH”-> InsId::kInsH。可以使用地图(如许多答案中所述):

const std::unordered_map<InsId,std::string> id_map_{{InsId::kInsH,"kInsH"},{InsId::kInsM1,"kInsM1"},{InsId::kInsM2,"kInsM2"}};

问题是:有没有办法在编译时从枚举字段名称生成那些字符串?

谢谢。

解决方法

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

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

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