New Preprocessor Features 

This topic lists the new features in the Visual C++ 2005 preprocessor.

For more information, see Breaking Changes in the Visual C++ 2005 Compiler.

Remarks

The Visual C++ 2005 preprocessor contains the following new features:

  • __CLR_VER predefined macro added. For more information, see Predefined Macros.

  • The comment (C/C++) pragma now accepts /MANIFESTDEPENDENCY as a linker comment. The exestr option to comment is now deprecated.

  • embedded_idl attribute (The #import Directive) now takes an optional parameter.

  • fenv_access pragma

  • float_control pragma

  • fp_contract pragma

  • Global variables will not be initialized in the order they are declared if you have global variables in pragma managed, unmanaged and unmanaged sections. This is a potential breaking change if, for example, an unmanaged global variable is initialized with a managed global variables, and a fully constructed managed object is required.

  • Sections specified with init_seg are now read only, and not read/write as in previous versions.

  • inline_depth default is now 16. A default of 16 was also in effect in Visual C++ .NET 2003.

  • _INTEGRAL_MAX_BITS predefined macro added, see Predefined Macros.

  • _M_CEE, _M_CEE_PURE, and _M_CEE_SAFE predefined macros added, see Predefined Macros.

  • _M_IX86_FP predefined macro added. For more information, see Predefined Macros.

  • _M_X64 predefined macro added. For more information, see Predefined Macros.

  • make_public pragma

  • managed, unmanaged pragma syntax updated (now has push and pop)

  • mscorlib.dll is now implicitly referenced by The #using Directive in all /clr compilations.

  • _OPENMP predefined macro added. For more information, see Predefined Macros.

  • optimize pragma has been updated, a and w are no longer valid parameters.

  • no_registry #import attribute has been added.

  • region, endregion pragmas added

  • _VC_NODEFAULTLIB predefined macro added. For more information, see Predefined Macros.

  • Variadic Macros are now implemented.

  • vtordisp is deprecated and will be removed in a future release of Visual C++.

  • The warning pragma now has the suppress specifier.

See Also

Concepts

What's New in Visual C++ Compiler, Language, and Tools