Результаты поиска по запросу "variadic-macros"

1 ответ

Макрос не расширяется прямым вызовом, но расширяется косвенным

2 ответа

Использование макрокоманд или шаблонов для реализации набора функций

У меня есть набор методов, используемых для создания и инициализации набора объектов. Все они выглядят примерно одинаково, за исключением количества аргументов, передаваемыхВ этомфункция: ObjectType* CreateObjectType(Arg1 a1, Arg2 arg2, ... ArgN ...

4 ответа

Идентификатор _ _ VA_ARGS _ _ должен присутствовать только в списке замены функционально-подобного макроса, который использует многоточие в параметрах.

тладочных сборок я обычно использую Clang, так как он лучше форматирует предупреждения и ошибки и немного облегчает их отслеживание и исправление. Но недавно после добавления макроса с переменными аргументами Кланг сказал мне следующее (из ...

ТОП публикаций

2 ответа

Препроцессор C для разделения «int x» на int & x

Мне нужно иметь возможность получить следующее: #define MY_MACRO(PARAM1,PARAM2) \ MY_OTHER_MACRO(TYPENAME_OF(PARAM1),PARAMNAME_OF(PARAM1));\ MY_OTHER_MACRO(TYPENAME_OF(PARAM2),PARAMNAME_OF(PARAM2));\вызывать MY_MACRO(int x,char ...

2 ответа

Улучшенный макрос LOG () с использованием шаблонного метапрограммирования

Типичное решение для ведения журнала на основе макросов LOG () может выглядеть примерно так: #define LOG(msg) \ std::cout << __FILE__ << "(" << __LINE__ << "): " << msg << std::endlЭто позволяет программистам создавать сообщения с богатыми ...

3 ответа

 суффикс к вашему исходному файлу, чтобы получить эту поддержку. MSVC долгое время не обновлял свой C-интерфейс.

отрим этот код: #define F(x, ...) X = x and VA_ARGS = __VA_ARGS__ #define G(...) F(__VA_ARGS__) F(1, 2, 3) G(1, 2, 3)Ожидаемый результатX = 1 and VA_ARGS = 2, 3 для обоих макросов, и это то, что я получаю с GCC, однако, MSVC расширяет это ...

2 ответа

(Я попытаюсь вернуться к этому, чтобы очистить его; я думаю, что там определенно есть некоторые ненужные макросы. У меня не было возможности взглянуть на более широкую проблему, которую вы описываете, поэтому я не уверен, решит ли это это тоже. Может быть, есть и более простой способ решения этой проблемы ... Я не особенно знаком с вариадными макросами. Это чистая предварительная обработка в mcpp.)

аюсь сгенерировать объявление функции с помощью макроса /* goal: generate int f(int a, float b) */ template<typename P> struct ptype; template<typename P> struct ptype<void(P)> { typedef P type; }; #define NAMEe #define COMMAe #define COMMA , ...

3 ответа

 работает только с расширением GNU. Вы знаете, как решить эту проблему для C99?

трюк для создания вариационного макросаFOO(a1, a2, a3,..., an) так что он расширяется доFOOn(a1, a2, a3,..., an) для значенийn в каком заранее выбранном ограниченном диапазоне вы выбираете? Это,FOO(a) следует расширить доFOO1(a), FOO(a, b, c) ...

10 ответов

И этот вопрос включал обоснование того, что FOO не использовался целую вечность.

твуетобщеизвестный [https://stackoverflow.com/questions/4054085/gcc-appending-to-va-args] проблема [http://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html]с пустыми аргументами для variadic макросов в C99. пример: #define FOO(...) ...

2 ответа

Расширение макроса MSVC ++

Итак, у меня есть макрос, который прекрасно работает в GCC, но не в Microsoft C ++ Compiler. Я надеюсь, что кто-то может знать об обходном пути, или, возможно, может объяснить мне, почему он так себя ведет. Я уверен, что этот макрос не совсем ...