在C ++中将字符串转换为枚举?

时间:2009-02-03 19:27:51

标签: c++ enums

Strings to enum in C#,你通常如何在C ++中将字符串转换为枚举。你使用的任何帮助函数都是一个好主意。

3 个答案:

答案 0 :(得分:2)

我前一段时间审核了这种方法 - 可通过Code Project

获取

答案 1 :(得分:0)

您可能需要使用std :: map或hash_map数据结构。

答案 2 :(得分:0)

#include <EnumString.h>

来自http://codeproject.com/Articles/42035/Enum-to-String-and-Vice-Versa-in-C和之后

enum FORM {
    F_NONE = 0,
    F_BOX,
    F_CUBE,
    F_SPHERE,
};

插入

Begin_Enum_String( FORM )
{
    Enum_String( F_NONE );
    Enum_String( F_BOX );
    Enum_String( F_CUBE );
    Enum_String( F_SPHERE );
}
End_Enum_String;

如果enum中的值不是dublicate,则工作正常。

代码中的示例

enum FORM f = ...
const std::string& str = EnumString< FORM >::From( f );

反之亦然

assert( EnumString< FORM >::To( f, str ) );