このセクションでは、Oracle Solaris Studio 12.4 C++ 5.13 コンパイラリリースに導入された新機能と変更された機能のサマリーを一覧に示します。
x86 での Intel Ivy Bridge プロセッサの新しい -xarch、-xchip、および -xtarget の値。
SPARC T5、M5、M6、および M10 以降のプロセッサの -xarch、-xchip、および -xtarget の値。
Ivy Bridge アセンブラ命令のサポート。
solstudio-install-dir/lib/compilers/include/cc/immintrin.h で見つけられる Ivy Bridge 組み込み関数のサポート。
x86 上の -m32 の sse2 に設定されている -xarch=generic のデフォルト値。
x86 での -xlinkopt のサポート。最新 Intel プロセッサ向け大規模エンタープライズアプリケーションのためのモジュール間、プロシージャ間のコードオーダリング最適化。大規模なアプリケーションでは、完全に最適化されたバイナリで最大 5% のパフォーマンス向上が見られます。
実行可能ファイルのサイズ、およびデバッグのためにオブジェクトファイルを保持する必要性のトレードオフを制御する拡張 -xs オプション。
Linux での -xanalyze および -xannotate のサポート。
-xopenmp=parallel の同義語としての -fopenmp のサポート。
すべてのプラットフォームでの -compat=g のサポート。
x86 での -xregs のサポート。
-errtags の動作は現在、C コンパイラと同じく、警告メッセージに対してのみタグを発行します。以前の C++ コンパイラでは、-errtags オプションにより、タグが警告とエラーの両方のメッセージの一部として出力されました
-template のデフォルト値は、-template=extdef から -template=no%extdef に変更されています。詳細は、Chapter 5, プログラムの編成とChapter 6, テンプレートの作成と使用を参照してください。
-xoption と同じ効果を持つ次のオプションは、現在では非推奨です。
–help
–inline
–libmieee
–libmil
–nolib
–nolibmil
–pg
–time
–unroll
代わりに、–xhelp、–xinline、–xlibmieee などを使用するようにしてください。
新しいコンパイラオプション:
-features=[no%]rtti は、実行時型識別機構 (RTTI) を無効にします
-fma は、浮動小数点の積和演算 (FMA) 命令の自動生成を有効にします。
(x86) -preserve_argvalues は、レジスタベースの関数引数のコピーをスタックに保存します。
-std は、g++ のバイナリ互換性で C++ 03 または C++ 11 ダイアレクトの選択を有効にします。-std=c++11 を使用する場合、次の制限が適用されます。
ユニバーサルキャラクタ名 (エスケープされたユニコードキャラクタ) は、現在サポートされていません。
<iostream.h>、<fstream.h> などの、.h で終わる非標準の iostream ヘッダーは使用できません。これらのヘッダーは、旧式の C++ から C++98 への移行を容易にすることを目的としていました。
詳細は、-std=vを参照してください。
-xdebuginfo は、デバッグおよび可観測性情報の出力量を制御します。
-xglobalize は、ファイルの静的変数のグローバル化を制御します (関数は制御しません)。
-xinline_param では、コンパイラが関数呼び出しをインライン化するタイミングを判断するために使用するヒューリスティックを変更できます。
-xinline_report は、コンパイラによる関数のインライン化に関する報告を生成し、標準出力に書き込みます。
-xipo_build は、最初の受け渡し時にコンパイラによって最適化せず、リンク時にのみ最適化することによって、コンパイルの時間を短縮します。
-xkeep_unref は、参照されない関数および変数の定義を維持します。
-xpatchpadding は、各関数を開始する前にメモリー領域を予約します。
-xprevise は、コードアナライザを使用して表示できるソースコードの静的分析を生成します。
(Oracle Solaris) -xsegment_align を指定すると、ドライバはリンク行で特殊なマップファイルをインクルードします。
-xthroughput は、システム上で多数のプロセスが同時に実行されている状況でアプリケーションが実行されることを示します。
-xunboundsym は、動的に結合されているシンボルへの参照がプログラムに含まれているかどうかを指定します。