Visual C++ 2005 でのコンパイラの機能
更新 : 2007 年 11 月
このトピックでは、Visual C++ 2005 コンパイラの新機能の一覧を示します。
メモ : |
---|
Visual C++ コンパイラは、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 の各オペレーティング システムでのみ実行できます。 |
解説
Visual C++ 2005 コンパイラには、次の新機能があります。
このリリースのコンパイラには、互換性に影響する変更点があります。詳細については、「Visual C++ 2005 コンパイラの互換性に影響する変更点」を参照してください。
64 ビットのネイティブ コンパイラおよびクロスコンパイラが用意されています。詳細については、「コンパイラ オプション」および「x64 ソフトウェア規約」を参照してください。
/analyze (Enterprise コード分析) コンパイラ オプションが追加されました。
/bigobj コンパイラ オプションが追加されました。
/clr:pure、/clr:safe、および /clr:oldSyntax が追加されました。詳細については、「/clr (共通言語ランタイムのコンパイル)」を参照してください。
使用が推奨されないコンパイラ オプション : このリリースでは、多数のコンパイラ オプションの使用が推奨されなくなりました。詳細については、「Visual C++ 2005 で使用を推奨されていないコンパイラ オプション」を参照してください。
/clr コード内のダブル サンキングが減少しました。詳細については、「ダブル サンキング (C++)」を参照してください。
スロー以外で発生した例外のキャッチに、/EH (例外処理モデル) または /EHs を使用できなくなりました。/EHa を使用してください。
/errorReport (内部コンパイラ エラーの報告) コンパイラ オプションが追加されました。
/favor (x64 用の最適化) コンパイラ オプションが追加されました。
/FA、/Fa (リスティング ファイル) コンパイラ オプションが追加されました。
/FC (診断時のソース コード ファイルの完全パス) コンパイラ オプションが追加されました。
/fp (浮動小数点の動作の指定) コンパイラ オプションが追加されました。
/G (プロセッサの最適化) オプション コンパイラ オプションが追加されました。
/G (プロセッサの最適化) オプション コンパイラ オプションが追加されました。
/G3、/G4、/G5、/G6、/G7、および /GB の各コンパイラ オプションが削除されました。コンパイラは、すべてのアーキテクチャにとって最適な出力ファイルを作成しようとする "ブレンド モデル" を使用するようになりました。
/Gf が削除されました。代わりに、/GF (同一文字列の削除) を使用してください。
/GL (プログラム全体の最適化) が /CLRHEADER と互換性を持つようになりました。詳細については、「/LTCG (リンク時のコード生成)」を参照してください。
/GR は既定でオンになりました。詳細については、「/GR (ランタイム型情報の有効化)」を参照してください。
/GS (バッファのセキュリティ チェック) により、脆弱なポインタ パラメータに対してセキュリティ保護が提供されるようになりました。/GS は既定でオンになりました。また、/GS は、/clr (共通言語ランタイムのコンパイル) を指定して MSIL にコンパイルされる関数で機能するようになりました。
/homeparams (レジスタ パラメータのスタックへのコピー) コンパイラ オプションが追加されました。
/hotpatch (ホットパッチ可能なイメージの作成) コンパイラ オプションが追加されました。
インライン関数ヒューリスティックが更新されました。詳細については、「inline, __inline, __forceinline」および「inline_depth」を参照してください。
新しい組み込み関数が多数追加されました。また、以前文書化されていなかった多数の組み込みが文書化されました。詳細については、「Alphabetical Listing of Intrinsic Functions」を参照してください。
既定で、new 呼び出しが失敗した場合、例外がスローされるようになりました。詳細については、「The new and delete Operators」を参照してください。
/ML コンパイラ オプションおよび /MLd コンパイラ オプションが削除されました。Visual C++ では、静的にリンクされたシングルスレッド CRT ライブラリはサポートされなくなりました。詳細については、「C ランタイム ライブラリ」を参照してください。
コンパイラは、名前付き戻り値の最適化を実装しました。これは、/O1、/O2 (プログラム サイズ、実行速度)、/Og (グローバルの最適化)、および /Ox (最大限の最適化) を指定してコンパイルするときに有効になります。
/Oa コンパイラ オプションが削除されましたが、エラーなしで無視されます。コンパイラがエイリアスを使用する方法を指定するには、noalias 修飾子または restrict__declspec 修飾子を使用します。
/Op コンパイラ オプションが削除されました。代わりに、/fp (浮動小数点の動作の指定) を使用してください。
OpenMP が Visual C++ でサポートされるようになりました。詳細については、「Visual C++ の OpenMP」を参照してください。
/openmp (OpenMP 2.0 サポートの有効化) コンパイラ オプションが追加されました。
/Ow コンパイラ オプションが削除されましたが、エラーなしで無視されます。コンパイラがエイリアスを使用する方法を指定するには、noalias 修飾子または restrict__declspec 修飾子を使用してください。
/QI0f が削除されました。
/QIfdiv が削除されました。
/QIPF_B (B CPU ステップ実行のエラー) コンパイラ オプションが追加されました。
/QIPF_C (C CPU ステップ実行のエラー) コンパイラ オプションが追加されました。
/QIPF_fr32 (上位 96 ビットの浮動小数点レジスタの使用の禁止) コンパイラ オプションが追加されました。
/QIPF_noPIC (位置に依存するコードの生成) コンパイラ オプションが追加されました。
/QIPF_restrict_plabels (実行時に関数が作成されないものと仮定) コンパイラ オプションが追加されました。
/vd (ディスプレイスメントの無効化) では、構築中のオブジェクトで dynamic_cast Operator を使用できるようになりました (/vd2)。
/YX コンパイラ オプションが削除されました。代わりに、/Yc (プリコンパイル済みヘッダー ファイルの作成) タグまたは /Yu (プリコンパイル済みヘッダー ファイルの使用) タグを使用してください。/YX をビルド構成から削除するだけで置き換えをしない場合は、ビルドが高速になります。
/Zc:forScope は既定でオンになりました。詳細については、「/Zc:forScope (for ループのスコープの強制準拠)」を参照してください。
/Zc:wchar_t は既定でオンになりました。詳細については、「/Zc:wchar_t (wchar_t をネイティブ型として認識)」を参照してください。
/Zd コンパイラ オプションが削除されました。行番号のみのデバッグ情報はサポートされなくなりました。代わりに /Zi を使用してください (詳細については、「/Z7、/Zi、/ZI (デバッグ情報の形式)」を参照してください)。
/Zg は、C ソース コード ファイルだけで有効になりました。C++ ソース コード ファイルでは無効です。詳細については、「/Zg (関数プロトタイプの生成)」を参照してください。
/Zx (最適化された Itanium コードのデバッグ) コンパイラ オプションが追加されました。