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 杂注

  • float_control 杂注

  • 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 说明符。

请参见

概念

Visual C++ 2005 编译器、语言和工具中的更改