/Fx (挿入されたコードのマージ)
挿入されたコードをソースにマージして、各ソース ファイルのコピーを生成します。
構文
/Fx
解説
/Fx では、元のソース ファイルとマージされたソース ファイルを区別するため、ファイル名とファイル拡張子の間に .mrg 拡張子を追加します。 たとえば、属性付きのコードを含んだ MyCode.cpp という名前のファイルを /Fx でビルドすると、次のコードを含んだ MyCode.mrg.cpp という名前のファイルが作成されます。
//+++ Start Injected Code
[no_injected_text(true)]; // Suppress injected text, it has
// already been injected
#pragma warning(disable: 4543) // Suppress warnings about skipping
// injected text
#pragma warning(disable: 4199) // Suppress warnings from attribute
// providers
//--- End Injected Code
.mrg ファイルでは、属性により挿入されたコードは次のように区切られます。
//+++ Start Injected Code
...
//--- End Injected Code
no_injected_text 属性が .mrg ファイルに埋め込まれることにより、テキストを再挿入せずに .mrg ファイルのコンパイルができます。
.mrg ソース ファイルは、コンパイラによって挿入されたソース コードの表示を目的としていることに留意する必要があります。 .mrg ファイルは元のソース ファイルと完全に同じようにはコンパイルまたは実行されない場合があります。
.mrg ファイルでは、マクロは展開されません。
挿入されたコードを使用するヘッダー ファイルがプログラムに含まれている場合、 /Fx はそのヘッダー用の .mrg.h ファイルを生成します。 /Fx は、挿入されたコードを使用しないインクルード ファイルをマージしません。
Visual Studio 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。 詳細については、Visual Studio での C++ コンパイラとビルド プロパティの設定に関する記事を参照してください。
[構成プロパティ]>[C/C++]>[出力ファイル] のプロパティ ページを選択します。
[属性ソースの展開] プロパティを変更します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。ExpandAttributedSource