The C++ 5.0 compiler has two modes of operation, standard mode and compatibility 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 is not available for 64-bit programs.
You can't use important standard C++ features in compatibility mode.
New code written to the C++ standard might not compile in compatibility mode, meaning you can't import future new code into the application.
Since you can't link 4.2 and standard-mode C++ code together, you might need to maintain two versions of object libraries.
Compatibility mode will not be supported forever.
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:
You have C++ object libraries compiled with a 4.2 compiler and you can't recompile them in 5.0 standard mode. (For example, you don't have the source code.)
You need to get a product out the door immediately, and your source code won't compile in 5.0 standard mode.