0
ответов

#elif defined without parentheses

Using VS2005 with BLAH_BLAH defined the following preprocessor conditional is false: #elif defined BLAH_BLAH but if I change it to #elif defined(BLAH_BLAH) it is true. Why do the parentheses make ...
вопрос задан: 20 June 2016 17:51
0
ответов

Как развернуть / «препроцессировать» код шаблона C ++

Для правильной отладки сложных макросов в C ++ я обычно запускаю на них препроцессор, чтобы точно увидеть, как выглядит результирующий код. Есть ли аналогичный способ «предварительной обработки» кода шаблона?
вопрос задан: 20 June 2016 14:15
0
ответов

Преобразование вектора MPL в статический массив

Я написал код для генерации boost :: mpl :: vector для использования в качестве таблицы поиска для функции факториала, как тест для более общей библиотечной функции, с помощью которой разработчик может создать ...
вопрос задан: 20 June 2016 12:42
0
ответов

Значение Info.plist как C ++ #define

В проекте C ++ iOS (или любой другой Mac OS) существует простой способ сделать значение доступным как для Info.pList настроек, а к коду в виде макроса препроцессора? В идеале я бы ...
вопрос задан: 20 June 2016 12:28
0
ответов

Какое значение неопределенной константы используется в #if ?

Мой препроцессор, кажется, предполагает, что неопределенные константы равны 0 для оценки условий #if. Можно ли полагаться на это, или неопределенные константы приводят к неопределенному поведению?
вопрос задан: 20 June 2016 09:34
0
ответов

Как избежать двойного включения: директива препроцессора или make-файлы

Я работаю над переходом от франкенштейновых программ и однофайловых программ с тысячами строк к хорошо структурированным и организованным многофайловым программам. Сейчас то, что кажется естественным (наивно), - это заниматься любовью ...
вопрос задан: 19 June 2016 18:31
0
ответов

Как запустить препроцессор и компилятор MSVC в два отдельных шага?

Я бы хотел запустить компилятор Microsoft Visual Studio cl.exe без вызова препроцессора. Это возможно? Я думал, что простая компиляция предварительно обработанного исходного кода (с использованием флага / c) сделает ...
вопрос задан: 19 June 2016 15:43
0
ответов

How to single out the first parameter sent to a macro taking only a variadic parameter

I try to get at the first actual parameter sent to a variadic macro. This is what I tried, and which does not work in VS2010: #define FIRST_ARG(N, ...) N #define MY_MACRO(...) decltype(FIRST_ARG(...
вопрос задан: 19 June 2016 15:03
0
ответов

Как определить платформу / компилятор из макросов препроцессора?

Я пишу кросс-платформенный код, который должен компилироваться в Linux, Windows, Mac OS. В Windows я должен поддерживать Visual Studio и Mingw. Есть некоторые фрагменты кода для конкретной платформы, которые мне следует ...
вопрос задан: 19 June 2016 14:19
0
ответов

Попала ли `#pragma once` в C ++ 0x?

Название говорит само за себя. Была ли когда-то стандартизирована #pragma для C ++ 0x? Я не знаю компилятора, который бы не реализовал его, почти всегда с той же семантикой и именем.
вопрос задан: 19 June 2016 13:22
0
ответов

Когда CPP-склейка строк отменяется в необработанных строках C++0x, требуется ли соответствующая реализация для сохранения исходной последовательности новых строк?

В последнем проекте C++0x, n3126, говорится: Каждый экземпляр символа обратной косой черты (\), за которым сразу следует символ новой строки, удаляется, разделяя физические строки исходного текста для формирования логического исходного текста ...
вопрос задан: 19 June 2016 13:21
0
ответов

Вывод препроцессора в Qt Creator

Я компилирую код C в Qt Нам с создателем нужно посмотреть на вывод препроцессора. Я добавил флаг -E в make, но я не вижу файлов * .i: mingw32-make.exe -e -w в \ qt \ qt-build-desktop ...
вопрос задан: 19 June 2016 11:27
0
ответов

sqlite копирует данные из одной таблицы в другую

SQLITE У меня есть 2 таблицы » Источник »и« Место назначения »с одинаковыми полями. ID и COUNTRY, хотя у них обоих есть и другие поля, которые не являются общими. Мне нужно скопировать значение Source.Country в ...
вопрос задан: 18 June 2016 21:47
0
ответов

Проверить, пусто ли значение макроса C

Мне нужно написать код, чтобы убедиться, что макрос определен, но пуст (не имеет значений). Тест не обязательно должен быть во время компиляции. Я пытаюсь написать: #if (funcprototype == "") ...
вопрос задан: 18 June 2016 21:45
0
ответов

Как проверить, можно ли использовать __PRETTY_FUNCTION__?

..... / PluginLoader.h: 34: множественное определение 'Dummy_Func_For_Generating_FUNCTION_NAME_Macro ()' Вышеупомянутая ошибка выводится для кода ниже. Я включил охранников в свое дело. И все остальное ...
вопрос задан: 18 June 2016 19:09
0
ответов

Препроцессор C ++

Я бы переписал простую программу C ++, используя unix в качестве имени переменной. Но компиляция программы не удалась. #include int main () {int unix = 1; возврат 0; } После поиска ...
вопрос задан: 18 June 2016 14:52
0
ответов

Как проверить, является ли символ препроцессора # define'd, но не имеет значения?

Используя директивы препроцессора C ++, можно ли проверить, определен ли символ препроцессора, но не имеет значения? Примерно так: #define MYVARIABLE #if! defined (MYVARIABLE) || #MYVARIABLE == ...
вопрос задан: 17 June 2016 22:17
0
ответов

Обнаружение C + Режим + 0x в Intel C ++?

Предопределяет ли Intel C ++ какой-либо макрос при компиляции с Qstd = c ++ 0x? Что-то вроде __GXX_EXPERIMENTAL_CXX0X__ в GCC? __cplusplus по-прежнему 199711. Есть ли способ определить компиляцию C ++ 0x?
вопрос задан: 17 June 2016 22:16
0
ответов

Объединение C ++ и C - как работает #ifdef __cplusplus ?

Я работаю над проектом, в котором много унаследованного кода C. Мы начали писать на C ++, с намерением в конечном итоге преобразовать и устаревший код. Я немного запутался в том, как C и C ++ ...
вопрос задан: 29 May 2016 20:08
0
ответов

Как «отключить» макросы, импортированные из C-Header

Класс A использует библиотеку, написанную на C. Эта библиотека предоставляет некоторые типы данных и константы, которые используются в A. К сожалению, библиотека также определяет макросы в своем заголовочном файле, которые конфликтуют с моим C + ...
вопрос задан: 19 May 2016 22:42
0
ответов

#if 0 против #if (1 > 1)? Любая подсказка

Я работаю с устаревшим кодом и обнаружил следующее: #if (1 > 1) // определить некоторую функцию #endif Не уверен, чем это может отличаться от более типичного #if 0, чтобы закомментировать код? Любой ...
вопрос задан: 9 May 2016 10:45
0
ответов

Как реализовать динамическую таблицу диспетчеризации на C

Прежде всего, я понимаю, как реализовать диспетчерскую таблицу, используя указатели на функции и строку или другой поиск, это не проблема. То, что я ищу, - это способ динамически добавлять...
вопрос задан: 17 April 2016 20:59
0
ответов

Как работает макрос препроцессора?

#определить B 100+B главная (){инт я = В; } Я знаю, что это неправильно, но просто из любопытства, когда я компилирую его, я получаю эту странную ошибку :"B не был объявлен в этой области". Почему это так? Если эта ошибка...
вопрос задан: 17 April 2016 20:58
0
ответов

Может ли препроцессор C++ определить, является ли токен строкой?

Может ли макрос препроцессора определить, является ли его аргумент строковым литералом ()или нет? Например:#определить IS _STRING (токен )??? IS _STRING ("foo" )// расширяется до 1 IS _STRING (foo )...
вопрос задан: 17 April 2016 17:52
0
ответов

Еще одно отличие препроцессора gcc от MS

Еще одно отличие препроцессора gcc от препроцессора MS VS cl. Рассмотрим следующий фрагмент:#определить A (x )L ##x #определение B A ("b") #определить C (x )x C (A ("a" B ))Для 'gcc -E' мы получаем...
вопрос задан: 17 April 2016 17:50
0
ответов

Разница между gcc и препроцессором Microsoft

Я обнаружил, что компилятор Microsoft Visual Studio и gcc по-разному предварительно обрабатывают следующий небольшой фрагмент:#определить M3 (x, y, z )x + y + z #определение M2 (x, y )M3 (x, y) #определить P (x, y ){x, y} #...
вопрос задан: 17 April 2016 12:27
0
ответов

Использование конкатенации препроцессора C для получения числа в экспоненциальной записи

Почему код:#определить EXPONENT (число, exp )число ##e ##exp ПОКАЗАТЕЛЬ (1,1 )ПОКАЗАТЕЛЬ (1, -1 )ПОКАЗАТЕЛЬ (1,+1 )после предварительной обработки меняется на :1e1 1е -1 1e+ 1 а не в 1e1 1е -1 1е+1 ? Подозреваю, что...
вопрос задан: 17 April 2016 12:27
0
ответов

Ошибка вставки «HELLO» и «WORLD» не дает допустимого токена предварительной обработки

Это ошибочный код #include #define CAT_I(A, B) A ## B #define CAT(A, B) CAT_I(A,B) void main (пусто) { printf(CAT("ПРИВЕТ","МИР")); } Почему выдает...
вопрос задан: 15 April 2016 22:32
0
ответов

Могу ли я условно заменить аргументы препроцессора?

Работая со структурой модульного тестирования, я столкнулся с ситуацией, когда мне нужно проверить аргументы макроса. Проще говоря, я хотел бы расширить макрос FOO(x) так, чтобы FOO(int) был коротким, а FOO(...
вопрос задан: 15 April 2016 22:31
0
ответов

Расширение макросов для макросов с аргументами и переменных с одинаковыми именами

Рассмотрим следующую программу на языке C (не обращайте внимания на двойной побочный эффект): #define max(a, b) (a> b?a:b) int main(void){ int max = max(5,6); возврат макс.; } Препроцессор GCC преобразует это в:...
вопрос задан: 15 April 2016 14:57