Код: Выделить всё
MY_ENUM_BEGIN(fun)
ENUM_ENTRY(item1, 1, "item 1")
ENUM_ENTRY(item2, 2, "item 2")
MY_ENUM_END()
Код: Выделить всё
struct fun
{
const static my_item item1(1, "item 1"); // "fun" is the parameter of the macro "MY_ENUM_BEGIN"
const static my_item item2(2, "item 2");
std::map m_map;
static void register_item()
{
m_map[1] = item1;
m_map[2] = item2;
}
};
Я пытался определить макрос внутри другого определения макроса:
Код: Выделить всё
#define MY_ENUM_BEGIN(name) \
struct name \
{\
#define ENUM_ENTRY(entry_name, index, text) \
const static my_item entry_name(index, text); \
// ...
Подробнее здесь: https://stackoverflow.com/questions/791 ... acros-in-c