/Ob (関数のインライン展開)
更新 : 2007 年 11 月
関数のインライン展開を制御します。
/Ob{0|1|2}
引数
0
インライン展開を無効にします。既定では、インライン展開は有効になっています。1
inline, __inline, __forceinline または __inline と指定されている関数、またはクラス宣言で定義された C++ メンバ関数だけが展開されます。2
inline または __inline と指定されている関数、およびコンパイラが選択した関数が展開されます。この展開はコンパイラの判断で行われるため、自動インライン化とも呼ばれます。/O1、/O2 (プログラム サイズ、実行速度) または /Ox (最大限の最適化) を使用するとき、/Ob2 が有効になっています。
このオプションを指定するには、/O1、/O2、/Ox、または /Og を使用して最適化を有効にする必要があります。
解説
インライン展開に関するオプションとキーワードは、インライン展開の対象となる候補をコンパイラに示すだけです。したがって、指定したとおりに関数がインライン展開される保証はありません。また、特定の関数のインライン展開を強制することもできません。
auto_inline を使用すると、関数をインライン展開の候補から除外できます。「intrinsic」も参照してください。
メモ : |
---|
プロファイリングのテスト実行から収集される情報により、/Ob、/Os、または /Ot を指定する場合に有効な最適化がオーバーライドされます。詳細については、「ガイド付き最適化のプロファイル」を参照してください。 |
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「方法 : プロジェクト プロパティ ページを開く」を参照してください。
[C/C++] フォルダをクリックします。
[最適化] プロパティ ページをクリックします。
[インライン関数の展開] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- InlineFunctionExpansion を参照してください。