C++ Migration Guide

Compiler Modes of Operation

The C++ 5.0 compiler has two modes of operation, standard mode and compatibility mode.

Standard Mode

Standard mode implements most of the C++ International Standard, and has some source incompatibilities with the language accepted by C++ 4, as noted earlier.

More importantly, the C++ 5.0 compiler in standard mode uses an Application Binary Interface (ABI) different from that of C++ 4. Code generated by the compiler in standard mode is generally incompatible with, and cannot be linked with, code from the various C++ 4 compilers. This subject is discussed in more detail in "Binary Compatibility Issues".

You should update your code to compile in 5.0 standard mode, for several reasons:

Compatibility Mode

To provide a migration path from C++ 4 to C++ 5.0 standard mode, the C++ 5.0 compiler provides a compatibility mode. The compatibility mode is fully binary compatible and mostly source compatible with the C++ 4 compiler. (Compatible means upward compatible. Older source and binary code works with the new compiler, but you cannot depend on code intended for the new compiler working with an old compiler.) Compatibility mode is not binary compatible with standard mode. Compatibility mode is available for Intel and SPARC on Solaris 2.5.1, 2.6, and Solaris 7, but not for SPARC V9 (64-bit Solaris 7).

Reasons to use compatibility mode: