enum to string table
От: Alexander Pazdnikov  
Дата: 15.11.08 10:33
Оценка:
Подскажите, поэалуйста, реализацию для subj

enum ReturnType
{
    RET_OK = 0, // все хорошо
    ERR_IO, // ошибка io с файлом
    ERR_SESSIONCLOSED, // сессия закрыта
    ERR_DICONNECTED, // отсутствие соединения с удаленным модулем
    ERR_CRC, // ошибка КС принатого пакета
....
}


получить что-то подобное

что-там нужное
{
    { RET_OK, "все хорошо" },
    { ERR_IO, "ошибка io с файлом" },
    { ERR_SESSIONCLOSED, "сессия закрыта" },
    { ERR_DICONNECTED, "отсутствие соединения с удаленным модулем" },
    { ERR_CRC, "ошибка КС принатого пакета" }
....
}
Re: enum to string table
От: sc Россия  
Дата: 15.11.08 11:33
Оценка: 1 (1) +2
мне кажется прямо в лоб и реализовать


enum ReturnType
{
    RET_OK = 0,            // все хорошо
    ERR_IO,                // ошибка io с файлом
    ERR_SESSIONCLOSED,     // сессия закрыта
    ERR_DICONNECTED,       // отсутствие соединения с удаленным модулем
    ERR_CRC                // ошибка КС принатого пакета
};

char const* EnumToString(ReturnType rt)
{
    static char* ReturnTypeString[] = {
        "все хорошо",
        "ошибка io с файлом",
        "сессия закрыта",
        "отсутствие соединения с удаленным модулем",
        "ошибка КС принатого пакета"
    };
    STATIC_ASSERT(ERR_CRC == sizeof(ReturnTypeString) / sizeof(&ReturnTypeString[0]) - 1);
    return ReturnTypeString[rt];
}

char const* EnumToString2(ReturnType rt)
{
    switch(rt)
    {
    case RET_OK:             return "все хорошо";
    case ERR_IO:             return "ошибка io с файлом";
    case ERR_SESSIONCLOSED:  return "сессия закрыта";
    case ERR_DICONNECTED:    return "отсутствие соединения с удаленным модулем";
    case ERR_CRC:            return "ошибка КС принатого пакета";
    default:                 assert(!"Unexpected return type");
    };
    return 0;
}
Re: enum to string table
От: _nn_  
Дата: 15.11.08 13:29
Оценка: 2 (1)
Здравствуйте, Alexander Pazdnikov, Вы писали:

AP>Подскажите, поэалуйста, реализацию для subj


AP>
AP>enum ReturnType
AP>{
AP>    RET_OK = 0, // все хорошо
AP>    ERR_IO, // ошибка io с файлом
AP>    ERR_SESSIONCLOSED, // сессия закрыта
AP>    ERR_DICONNECTED, // отсутствие соединения с удаленным модулем
AP>    ERR_CRC, // ошибка КС принатого пакета
AP>....
AP>}
AP>


AP>получить что-то подобное


AP>
AP>что-там нужное
AP>{
AP>    { RET_OK, "все хорошо" },
AP>    { ERR_IO, "ошибка io с файлом" },
AP>    { ERR_SESSIONCLOSED, "сессия закрыта" },
AP>    { ERR_DICONNECTED, "отсутствие соединения с удаленным модулем" },
AP>    { ERR_CRC, "ошибка КС принатого пакета" }
AP>....
AP>}
AP>


Boost.Enum
Автор: _nn_
Дата: 07.09.07
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: enum to string table
От: nen777w  
Дата: 15.11.08 22:40
Оценка: 1 (1)
Можете мой велосипед использовать: здесь
Автор: nen777w
Дата: 23.10.08
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.