Описание тега x-macros
Using macros to use the same tokens in multiple ways.
2
ответа
Условная ошибка x-macro - сравнение чисел
Я хотел бы сгенерировать ошибку времени компиляции для X-макроса для всех X(a, b) где a > b /* X(a, b) */ #define LIST \ X(10, 20) \ X(5, 20) \ X(30, 20) \ X(1, 20) Итак, сгенерируйте ошибку для X(30, 20) Возможно ли это в C? РЕДАКТИРОВАТЬ: приме…
08 июн '15 в 16:10
2
ответа
Как устранить избыточный параметр макроса
Некоторое время назад я написал набор X-макросов для крупного проекта. Мне нужно было поддерживать связные списки как строк, так и перечислимых ссылок / хеш-значений / функций обратного вызова и т. Д. Вот как выглядит функция обратного вызова #defin…
21 фев '11 в 13:55
4
ответа
Создание связанного x-макроса из существующего
Рассмотрим следующий пользовательский стиль x-macro: #define PRIMES_X(func) \ func(2) \ func(3) \ func(5) \ func(7) Мы можем использовать это для расширения переданного макроса func неоднократно с первыми четырьмя простыми числами. Например: #define…
20 июл '18 в 19:55
3
ответа
Как присвоить значение внутри моего макроса?
Я пытаюсь присвоить значение внутри моего x-макроса, но я не совсем понимаю, почему оно не работает: #include <stdio.h> typedef struct { int a; int b; } struct_t; #define MY_LIST \ MY_ELEMENT(a) \ MY_ELEMENT(b) #define MY_ELEMENT(x) struct_t x…
12 янв '19 в 08:09
2
ответа
Проверьте наличие записи в списке препроцессора C
Можно ли проверить наличие записи в списке, определенном X-макросом? Учитывая приведенный ниже пример кода, я хотел бы #if defined(GEORGE) условие, чтобы быть правдой. РЕДАКТИРОВАТЬ: не делая явного #define GEORGE, конечно. Я надеюсь, что есть спосо…
27 фев '18 в 02:30
2
ответа
Сокращение повторения кода в C++ (или x-treme x-macros)
Я использую x-макросы для уменьшения количества повторений и дублирования кода при реализации интерфейса Lua для игры Bitfighter. Следующий код работает нормально: // Fn name Valid param profiles Profile count # define TELEPORTER_LUA_METHOD_TABLE \ …
10 июл '12 в 12:48
1
ответ
#include внутри x-макроса
Я хочу написать X-макрос, который генерирует некоторый код. Код зависит от нескольких заголовков и предназначен для генерации в пространствах имен. Проблема в том, что включения xmacro включаются в пространства имен вызывающей стороны. Есть ли спосо…
18 окт '12 в 20:57
1
ответ
Директива препроцессора #include и расширение макроса
У меня есть код ниже. При использовании директивы #define LIST doxygen генерирует документацию для классов Child_*. При использовании директивы #include документация классов Child_* игнорируется. Конфиг-файл также представлен ниже. Вопрос: как мне н…
02 янв '16 в 14:22
1
ответ
Печать структуры XMacro на консоль с C++
Я играю со структурами и классами, и я увидел действительно классный код, который я хотел попробовать: x-macro. Мой код разбит на 3 бита: заголовок, x-макрос и основной файл cpp. Программа еще не закончена, и в ней все еще есть покрытие кода и полир…
19 окт '16 в 23:44
1
ответ
Используйте enum для определения типа возвращаемого результата (взлом с помощью Macro)
У меня есть много типов игровых объектов, которые связаны между собой несколькими способами.Все отношения осуществляются Map<K1,K2>, #include <vector> using namespace std; template<class K1,class K2> class Map{ //N:N relation publi…
22 апр '17 в 07:46
0
ответов
Один #macro добавить поле и регистр (в switch-case)
Как определить макрос (ALL_SWITCH) распознать другой макрос (SINGLE_CASE) вхождения в виде списка, и вставьте коды в 2 разных местах? Является ли это возможным? пример Я хочу создать макрос, синтаксис которого примерно такой: SINGLE_CASE <Class N…
22 фев '17 в 05:27
1
ответ
Стрификация условно скомпилированного перечисления в C
Наша система имеет большое количество перечислений, обозначающих такие вещи, как события, ошибки и т. Д. Я пытаюсь создать инфраструктуру, которая позволила бы нам регистрировать каждое полученное событие или сообщение об ошибке в виде строки (вмест…
13 сен '13 в 15:44
0
ответов
Иерархический непрямоугольный список имен и перечислений в C++98
Я пытаюсь собрать иерархический список перечислений (индексов) и соответствующих им имен, чтобы я мог получить доступ к определенным именам или просматривать их все в зависимости от того, в каком разделе моего кода я нахожусь. Список будет константа…
31 май '17 в 16:18
1
ответ
Структурировать в XMacro
Я пытаюсь присвоить значение для структуры из таблицы XMacro. Есть ли другой способ присвоить "смещение" этому значению структуры? typedef enum Time_Unit_Tag { NO_UNIT, HOUR, MINUTES, SECONDS, TOTAL_UNITS } Time_Unit_T; enum { OFFSET_HOUR = 0, OFFSE…
08 дек '16 в 16:48
1
ответ
Объединить несколько токенов для макроса X
Я пытаюсь использовать X-макросы и конкатенацию препроцессора, оба впервые, вместе. Я прочитал много других вопросов по SO, связанных с конкатенацией препроцессоров, но пока не смог обернуть их вокруг или узнать, как их адаптировать к моему варианту…
21 июл '16 в 10:14
1
ответ
Как уменьшить количество аргументов в расширении таблицы xmacro
Я работал с таблицами на основе xmacros, как это: #define TABLE_MACRO(MAN_TYPE, WOMAN_TYPE) \ MAN_TYPE( John, Doe, "Addr1", arg_a, arg_b, arg_c) \ WOMAN_TYPE( Jane, Joe, "Addr2", arg_a, arg_b, arg_c) \ MAN_TYPE( Bill, Tom, "Addr3", arg_a, arg_b, arg…
26 мар '16 в 18:12
1
ответ
X-Macros с Boost.Preprocessor?
Отбросим это от моего вопроса относительно добавления к макросам CPP: Кто-нибудь здесь использовал типы данных библиотеки Boost.Preprocessor для реализации чего-то вроде X-макроса?
29 дек '10 в 02:06
1
ответ
Привязка строк и указателей к флэш-памяти при использовании расширения X-macro
Мне показалось, что я хорошо понимаю X-макросы, но это меня очень сильно озадачило. Я определил следующий код: #define FOR_DESCR_STRINGS(apply) \ apply(LANGUAGE_ID_STRING, "\0x04\0x03\0x09\0x04") \ apply(MANUFACTURER_STRING, "Quest Engineering &…
20 апр '16 в 20:49
2
ответа
Как получить отражающую функциональность в C, без X-макросов
В связи с этим вопросом о программной инженерии о простой сериализации различного содержимого структуры по требованию, я обнаружил статью, в которой используются x-макросы для создания структурных метаданных, необходимых для сериализации структуры "…
15 авг '17 в 13:00
1
ответ
Создать макрос для сбора токена (параметра) в список, один за другим
Я пытаюсь создать макрос, который генерирует указатель на экземпляр другого класса для обозначения направленного отношения. //#define BIND(A,B) ? //can be modified a little, top header BIND(CAT,DOG) BIND(CAT,TREE) BIND(CAT,RAT) BIND(DOG,TREE) //#def…
18 апр '17 в 09:12