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

0 ответов

octotep / Ракетка-слабины-апи

нь очень заинтересован в макросах и только начинаю понимать их истинную силу. Пожалуйста, помогите мне собрать отличные примеры использования макросистем. Пока у меня есть эти конструкции: Шаблон соответствия: Эндрю Райт и Брюс Дуба. ...

0 ответов

Моя основная проблема с этим заключается в том, что синтаксический блок неясен, особенно строка «to» в последнем примере. Я также не большой поклонник использования декораторов для различения типов макросов.

отал над альтернативным интерфейсом компилятора для Python, где весь синтаксис анализируется с помощью макросов. Наконец-то я подошел к своему развитию, и теперь я могу начать работу над надмножеством языка Python, где макросы ...

1 ответ

Проблемы с использованием локальной метки в макросе в MASM

Я должен написать макрос, который принимаетE,NE,A,B... как параметр и одна команда, т.е.mov eax,ebx который будет выполняться, если условие, установленное предыдущимcmp операция верна. Пример вызова будет выглядеть так. cmp bx,20 mDoIf E,<call ...

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

3 ответа

В конечном итоге я выбрал ответ Трэвиса, потому что его факторы еще более значимы, хотя, возможно, именно он был вдохновлен этим.

тавь, что у меня естьX Macro [https://en.wikipedia.org/wiki/X_Macro]для списка элементов определено что-то вроде этого: #define X_MACRO(FN) \ FN(foo) \ FN(bar) \ FN(zip)Это прекрасно работает, и я могу вызвать его, чтобы сгенерировать один и тот ...

4 ответа

 - Я оценил Boost три раза. Он не может пройти оценку ... Большинству сообщений об ошибках повезло, если их признали. Отсутствие признания указывает на более глубокие проблемы в процессе разработки. Я считаю, что макросы препроцессора и встроенные в C ++ стандартные библиотеки являются более безопасным выбором.

у кроссплатформенный код, который должен компилироваться в Linux, Windows, Mac OS. На окнах я должен поддерживать визуальную студию и mingw. Есть несколько частей кода, специфичного для платформы, который я должен поместить в#ifdef .. #endif ...

4 ответа

Шаблоны, с другой стороны, компилируются. Есть несколько этапов к этому. Например, имена разрешаются дважды. На любом этапе компилятор сохранит результат поиска по имени. Это запись в таблице. Как бы вы показали это в текстовом виде? Там нет тривиального выражения C ++ для этого.

ал, что компилятор будет расширять макросы во время компиляции. Шаблоны также раскрываются во время компиляции. Есть ли способ увидеть этот расширенный код? Я компилирую с использованием Visual Studio 2008. есть идеи?

3 ответа

@jcsalomon: верно, см. мое редактирование. Я думаю, что я добавлю это и к P99 тоже.

ли хак для поддержки регистра диапазона в выражении переключателя c (99?) Или target C? Я знаю, что это не поддерживается, чтобы написать что-то вроде этого: switch(x) case 1: case 2..10: case 11:Но я думал, что должен быть способ генерировать ...

4 ответа

В заключение, разница действительно заключается в компиляции вашего кода. Вам может понадобиться больше знаний о том, что там происходит.

ужно понять, как работает этот код: #define foo1( a ) (a * a) // How does this work? inline int foo2( int a ) { return (a * a); } int goo1( int x ) { return foo1(foo2(x)); } int goo2( int& x ) { return x = foo2(foo1(x)); } int goo3( int& x, int ...

3 ответа

Просто в качестве примера. У нас есть класс шаблона потока, который использует класс реализации thread_impl. thread_impl реализован как для windows, так и для unix, поэтому есть заголовочные файлы thread_impl_win и thread_impl_nix. Заголовочный файл потока должен включать один из них, чтобы можно было использовать класс thread_impl.

аюсь сгенерировать имя включаемого файла в макросе. Это должно быть законно в C ++: #define INCLUDE_FILE "module_impl_win.hpp" #include INCLUDE_FILEэто работает нормально, но как только я пытаюсь сгенерировать имя файла, он не ...

3 ответа

@Lundin: Хммм. Я получаю другое сообщение об ошибке с более новым GCC. Кажется, что не разрешено использовать аргументы с переменными значениями, но нельзя передавать аргументы с нулевым значением. Если это правда, добавление фиктивного аргумента работает. Я пытался использовать версию Visual Studio, по общему признанию, и она не компилируется вообще. (Это ничего не говорит о соответствии стандартам, хотя.)

я есть две функции foo1 (a, b) и foo2 (a, b, c) и макрос #define add(a,b) foo(a,b)Мне нужно переопределить макрос для достижения цели, 1. если add () вызывается с 2 параметрами, затем вызывается foo1 если add () вызывается с 3 параметрами, ...