预定义宏

以下表格列出了库预定义的宏。Wave其中部分宏(除 __LINE____FILE____BASE_FILE____DATE____TIME____STDC____INCLUDE_LEVEL____cplusplus 之外的所有宏)可以在驱动可执行文件的命令行(参见 -U 选项)或通过函数 remove_macro_definition() 取消定义。

预定义宏摘要
名称

可取消定义
__STDC__

1(十进制常量)

__cplusplus

199711L(十进制常量),仅在 C++ 模式下定义(C99 模式关闭)
在 C++0x 模式下,此十进制常量保证大于 199711L(具体取值由 C++ 委员会确定)。

__LINE__

当前源代码行的行号(十进制常量)

__FILE__

源文件的假定名称(字符字符串字面量)

__BASE_FILE__

此宏展开为主输入文件的名称(字符字符串字面量)。该源文件是在构造 wave::context 模板时指定的。

__DATE__

源文件的翻译日期(字符字符串字面量,格式为
“Mmm dd yyyy”,其中月份名称与 asctime 函数生成的相同,若日期小于 10,则 dd 的首字符为一个空格)。

__TIME__

源文件的翻译时间(字符字符串字面量,格式为 “hh:mm:ss”
如 asctime 函数生成的时间)。

__INCLUDE_LEVEL__

表示 include 文件嵌套深度的十进制整数常量。
每进入一个 include 文件时该值递增,#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 和 C++2A 模式下也定义。

__WAVE_CONFIG__

编译 Wave 库时使用的配置信息。它是一个十六进制常量,每一位代表编译期间启用/禁用的某个配置选项。可以使用以下位于wave_config_constant.hpp文件

BOOST_WAVE_SUPPORT_VARIADICS_PLACEMARKERS_CONFIG(值:0x1
支持变长参数和占位符

BOOST_WAVE_SUPPORT_PRAGMA_ONCE_CONFIG(值:0x02
#pragma once_Pragma(once))受支持

BOOST_WAVE_SUPPORT_MS_EXTENSIONS_CONFIG(值:0x04
支持 MS 扩展

BOOST_WAVE_PREPROCESS_PRAGMA_BODY_CONFIG(值:0x08
#pragma 语句(运算符 _Pragma)的主体将被预处理

BOOST_WAVE_USE_STRICT_LEXER_CONFIG(值:0x10
C/C++ 词法分析器识别严格的 C99/C++ 基本源字符集。如未定义或定义为 0,词法分析器会把字符 '$' 视为标识符的一部分。