如何有效地将 C 枚举映射到字符串
使用 C 枚举时,您可能会遇到需要将其值转换为用户的情况 -定义的字符串,反之亦然。虽然强力方法可能涉及一系列 switch 语句,但还有更优雅的解决方案可用。
使用 Std::map
映射枚举的可靠方法字符串的方法是使用 std::map
语法糖:Map_init 辅助类
为了增强可读性,请考虑使用 map_init 类。此类初始化映射并提供用于添加条目的便捷语法:
std::map<MyEnum, const char*> MyMap; map_init(MyMap) (eValue1, "A") (eValue2, "B") (eValue3, "C") ;
此类采用允许链接条目的 map_init_helper 结构。
利用 Boost::assign
如果您不想创建自定义助手,您可以使用 Boost::assign库,它为地图和其他类似地图的结构提供类似的功能。
结论
虽然这里描述的技术可能不像使用 RTTI 那样简洁,但它们提供更定制、更灵活的方法来将 C 枚举映射到字符串,满足特定要求,例如自定义字符串表示和易于维护。
以上是如何有效地将 C 枚举映射到字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!