C++ 5.0 コンパイラには、C++ 4.2 から C++ 5.0 標準モードへの移行のために互換モードが用意されています。互換モードでは、C++ 4.2 コンパイラと、バイナリレベルでは完全な互換性が、ソースレベルではほぼ完全な互換性が保たれます (「互換性」とは、「上位互換性」を意味します)。古いソースコードおよびバイナリコードは、新しいコンパイラで動作できますが、この逆に、新しいコンパイラ用に作成されたコードが古いコンパイラで動作するとは限りません) 。ただし、互換モードと標準モードとの間にバイナリレベルの互換性はありません。互換モードは、Solaris 2.5.1、2.6、7 のいずれかを実行する Intel および SPARC で使用できます。ただし、SPARC v9 (64 ビット対応の Solaris 7) で使用することはできません。
互換モードを使用する理由としては、以下が挙げられます。
たとえば、5.0 用のソースコードがないために、4.2 コンパイラでコンパイルした C++ オブジェクトライブラリを 5.0 コンパイラの標準モードで再コンパイルできない。
製品をすぐに出荷する必要があるのだが、その製品のソースコードが 5.0 コンパイラの標準モードではコンパイルできない。