Здравствуйте, Аноним, Вы писали:
А>Как-бы так ассоциировать с кодом команды строчку текста ? Мне приходит в голову
А>что-то такое:
А>А>struct Command {
А> ComandKind kind;
А> const char* text;
А> ComandK(ComandKind kind,const char* msg):kind(kind),msg(msg){}
А>} AppInit(APP_INIT,"APP_INIT") //можно макросом
А> ,AppClose(APP_CLOSE,"APP_CLOSE")
А> ..
А> ;
А>
А>Но тут приходиться вручную создавать объекты Command, что неудобно.
А>Есть ли решение лучше ?
если Ваша "религия" позволяет активно использовать препроцессор, то например так:
// file commands.inc
COMMAND( APP_INIT )
COMMAND( APP_CLOSE )
/*...*/
enum CommandKind
{
#define COMMAND( NAME ) NAME ,
#include "commands.inc"
#undef COMMAND
};
const char* CommandNames[] =
{
#define COMMAND( NAME ) #NAME ,
#include "commands.inc"
#undef COMMAND
};