Re: Преобразование строки в энум
От: _nn_ www.nemerleweb.com
Дата: 04.07.04 17:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте!

А>Если есть простенький enum. И есть строка. Как переменной типа enum присвоить значение соответствующее строке?

А>enum A

А>{One=0x1,Two=0x10}
А>MyString="One";
А>A x=MyString; //Как это сделать?

А>Не используюя enum из области System? используется стандартный сишный энум.


В рамках текущих С и С++ невозможно.
Можно сделать таблицу соответствий — enum — string(const char*).

Пример как сделать :
enum some_enum { e1, e2, e3, e4, e5 };
struct enum_str
{
 some_enum e;
 const char* str;
};

struct enum_str mapenumstr[]=
{
 {e1,"e1"},
 {e2,"e2"},
 //...
 {(some_enum)0,0}
};


Вот небольшая наработка на эту тему :
http://rsdn.ru/Forum/Message.aspx?mid=668565&only=1
Автор: _nn_
Дата: 06.06.04
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.