C++ c++;-枚举到字符*——这个无应答的q‌;u‌;e&x200C;s&x200C;t‌;i‌;o‌;n在增压时间之前被问到

C++ c++;-枚举到字符*——这个无应答的q‌;u‌;e&x200C;s&x200C;t‌;i‌;o‌;n在增压时间之前被问到,c++,visual-c++,boost,logic,C++,Visual C++,Boost,Logic,我知道类似的重复问题在SO中也有。但这些问题并没有太多地讨论boost。我使用 (boost::any).type().name() Enum示例{ex1,ex2} 上述代码将生成 示例 但我想得到确切的短语,如“ex1”。我现在正在使用VC++。在那里,我需要检查每个枚举,以填充一些关于API调用状态的消息。我是个新手,但现在我可以感受到这种提升的灵活性。因此,必须有一种简单的方法能够做到这一点 感谢Prabhakaran(答案){}Boost没有神奇的方法来做到这一点。对于类型,它可以依赖于

我知道类似的重复问题在SO中也有。但这些问题并没有太多地讨论boost。我使用

(boost::any).type().name()

Enum示例{ex1,ex2}

上述代码将生成

示例

但我想得到确切的短语,如“ex1”。我现在正在使用VC++。在那里,我需要检查每个枚举,以填充一些关于API调用状态的消息。我是个新手,但现在我可以感受到这种提升的灵活性。因此,必须有一种简单的方法能够做到这一点


感谢Prabhakaran(答案){}

Boost没有神奇的方法来做到这一点。对于类型,它可以依赖于RTTI,一个基本的C++特性。但一旦编译程序,枚举器名称就会丢失

这可能是你想要的吗

在C++中对字符串和副Versa的枚举


我不喜欢使用define,而该代码是用于用户定义的枚举的。我需要一般情况,就像我想引用不是用户定义的windows枚举一样。除非您自己将其保存在某个地方,否则在运行时任何方式都可以知道枚举器名称。@prabhakaran:但这是这个确切用例的规范和可靠的解决方案。你为什么不喜欢使用#define?@Tomalik,因为define并不是一种编程方式(盲目复制)。它属于技巧类,而不是编程类