The following table lists the macros, which are predefined by the
Wave library. Some of these (all except the __LINE__,
__FILE__, __BASE_FILE__, __DATE__,
__TIME__, __STDC__, __INCLUDE_LEVEL__
and __cplusplus macros) may be undefined from the command line of the driver executable
(see the -U option) or through the function remove_macro_definition().
Summary of predefined macros
Name
<Value>
Undefinable
__STDC__
1 (десятичная постоянная)
да
__cplusplus
199711L (десятичная постоянная), это определено только в режиме C++ (режим C99 выключен) В режиме C++0x эта десятичная постоянная гарантированно больше, чем 199711L (конкретное значение должно быть определено комитетом C++).
нет
__LINE__
Число строк текущей исходной линии (десятичная постоянная)
нет
__FILE__
Предполагаемое имя исходного файла (буквальная строка символа)
нет
__BASE_FILE__
Этот макрос расширяется до имени основного входного файла (буквальная строка символа). Это исходный файл, который был указан при построении волны::контекстШаблон.
нет
__DATE__
Дата перевода исходного файла (буквальная строка символа формы "Mmm dd yyyy", где имена месяцев такие же, как и те, которые генерируются функцией асктайма, а первый символ dd — пространственный символ, если значение меньше 10).
нет
__TIME__
Время перевода исходного файла (буквальная строка символа формы "hh:mm:ss" , как во времени, генерируемом функцией асктайма).
нет
__INCLUDE_LEVEL__
Десятичная целочисленная постоянная, представляющая глубину вложенности в файлы. Значение этого макроса увеличивается в каждой директиве#include и уменьшается в каждом конце файла.
нет
__WAVE__ __SPIRIT_PP__
Версия программы драйвера (гексадецинальная константа формы 0xMmrr, где'M'— основной номер версии,'m'— второстепенный номер версии и'rr'— номер выпуска).
да
__WAVE_VERSION__ __SPIRIT_PP_VERSION__
Полный номер версии программы драйвера (шестидесяточная константа формы 0xMmrrbbbb, где'M'является основным номером версии,'m'— второстепенным номером версии,'rr'— номером выпуска и'bbbb'— номером сборки).
да
__WAVE_VERSION_STR__ __SPIRIT_PP_VERSION_STR__
Полный номер версии программы драйвера (буквальный номер строки символа формы"M.m.rr.bbbb", где'M'является основным номером версии,'m'— второстепенным номером версии,'rr'— номером выпуска и'bbbb'— номером сборки).
да
__STDC_VERSION__
199901L (десятичная постоянная), это определяется только в режимах C99 и C++0x
да
__STDC_HOSTED__
0L (десятичная постоянная), это определяется только в режимах C99 и C++0x.
да
__WAVE_HAS_VARIADICS__
1 (десятичная постоянная), это определяется в режиме C++ только в том случае, если включены вариадики и маркеры места, и это определяется в режимах C99 и C++0x
нет
__WAVE_CONFIG__
Информация о конфигурации, используемая при составлении библиотеки Волн. Это шестнадцатеричная константа, где каждый из битов представляет собой определенную опцию конфигурации, включенную/отключенную во время компиляции. Вы можете задать этот запрос, используя следующие макроконстанты, доступные в файлеwave_config_constant.hpp:
BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG(значение:0x1) Поддерживаются вариады и маркеры
BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG(значение:0x02) #прагма один раз_прагма (один раз)Поддерживается
BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG(значение:0x04) Поддерживаются расширения MS
BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG(значение:0x08) Тела утверждений#прагма(оператор_прагма) будут предварительно обработаны
BOOST_WAVE_USE_STRICT_LEXER_CONFIG(значение:0x10) Лексеры C/C++ распознают строгий набор базовых исходных символов C99/C++. Если он не определен или не определен до нуля, лексеры распознают символ$как часть идентификаторов.
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Last updated:
Sunday, January 9, 2011 16:12
Статья Predefined Macros раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.