Strings to enum in C#,你通常如何在C ++中将字符串转换为枚举。你使用的任何帮助函数都是一个好主意。
答案 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 ) );