请教怎么直接将枚举数据enum直接转换成字符串

请问如何直接将枚举数据enum直接转换成字符串?请问如何直接将枚举数据enum直接转换成字符串?如:enumMPType

请问如何直接将枚举数据enum直接转换成字符串?
请问如何直接将枚举数据enum直接转换成字符串?
如:
enum   MPType  
{
MPT_None=1
MPT_Other=2
MPT_Board=3
};

当   MPType   var1   =   MPType::MPT_Board;   时
我想从var1转换得到一个CString   str1   =   "MPT_Board ";

[解决办法]
直接转是不可能的,总得要个string数组或map之类的:
---------------------
#include <iostream>
#include <string>
#include <map>
using namespace std;

enum MPType
{
MPT_None,
MPT_Other,
MPT_Board,
MPT_Length
};

//方案一,直接用数组
string MPTypeString[MPT_Length] = {
"MPT_None ",
"MPT_Other ",
"MPT_Board "
};

//方案二,用map
class MPTypeConverter {
public:
MPTypeConverter() {
map.insert(make_pair(MPT_None, "MPT_None "));
map.insert(make_pair(MPT_Other, "MPT_Other "));
map.insert(make_pair(MPT_Board, "MPT_Board "));
}

string ToString(MPType key) {
MPTypeStringMap::iterator pos = map.find(key);
if (pos != map.end())
return pos-> second;
return string( " ");
}

private:
typedef map <MPType, string> MPTypeStringMap;
MPTypeStringMap map;
};

int main()
{
MPTypeConverter converter;
cout < < MPTypeString[MPT_Board] < < endl;
cout < < converter.ToString(MPT_Board) < < endl;
return 0;
}
[解决办法]
http://topic.csdn.net/t/20050408/19/3921153.html