Visual C++ 2005 中的预处理器功能
更新:2007 年 11 月
本主题列出 Visual C++ 2005 预处理器中的新增功能。
有关更多信息,请参见 Visual C++ 2005 编译器中的重大更改。
备注
Visual C++ 2005 预处理器包含以下新增功能:
添加了预定义的宏 __CLR_VER。有关更多信息,请参见Predefined Macros。
现在,comment (C/C++) 杂注接受 /MANIFESTDEPENDENCY 作为链接器注释。comment 的 exestr 选项已被否决。
embedded_idl 属性 (The #import Directive) 现在具有可选参数。
fenv_access 杂注
fp_contract 杂注
如果您的杂注 managed, unmanaged 和非托管部分中存在全局变量,则不会按照声明全局变量的顺序初始化全局变量。这是一项潜在的重大更改。例如,如果使用托管全局变量来初始化非托管全局变量,则需要一个完整构造的托管对象。
用 init_seg 指定的部分现为只读,而不是早期版本中的读/写。
inline_depth 默认值现为 16。在 Visual C++ .NET 2003 中,默认值 16 也有效。
添加了预定义的宏 _INTEGRAL_MAX_BITS,请参见 Predefined Macros。
添加了预定义的宏 _M_CEE、_M_CEE_PURE 和 _M_CEE_SAFE,请参见 Predefined Macros。
添加了预定义的宏 _M_IX86_FP。有关更多信息,请参见Predefined Macros。
添加了预定义的宏 _M_X64。有关更多信息,请参见Predefined Macros。
make_public 杂注
更新了 managed, unmanaged 杂注语法(现在有 push 和 pop)
现在,The #using Directive 在所有 /clr 编译中都隐式引用 mscorlib.dll。
添加了预定义的宏 _OPENMP。有关更多信息,请参见Predefined Macros。
更新了 optimize 杂注,a 和 w 不再是有效参数。
no_registry 添加了 #import 属性。
添加了 region, endregion 杂注
添加了预定义的宏 _VC_NODEFAULTLIB。有关更多信息,请参见Predefined Macros。
现在实现了 Variadic Macros。
vtordisp 已被否决,并将在 Visual C++ 的未来版本中移除。
warning 杂注现在具有 suppress 说明符。