мне кажется прямо в лоб и реализовать
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;
}