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