Как создать класс с макросами на C++?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Как создать класс с макросами на C++?

Сообщение Anonymous »

Я хочу написать несколько макросов, используя следующее:

Код: Выделить всё

MY_ENUM_BEGIN(fun)
ENUM_ENTRY(item1, 1, "item 1")
ENUM_ENTRY(item2, 2, "item 2")
MY_ENUM_END()
который расширяется до следующего кода C++:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»