/reference
(名前付きモジュール IFC を使用)
現在のコンパイルに対して既存の IFC (.ifc
) を使用するようにコンパイラに指示します。
構文
/reference
module-name=filename
/reference
filename
引数
filename
IFC データ (事前構築済みのモジュール情報) を含んでいるファイルの名前。 複数のモジュールをインポートするには、ファイルごとに個別に /reference
オプションを指定します。
module-name
エクスポートされたプライマリ モジュール インターフェイス ユニット名または完全なモジュール パーティション名を表す有効な名前。
解説
ほとんどの場合、このスイッチを指定する必要はありません。これは、プロジェクト システムによってソリューション内のモジュールの依存関係が自動的に検出されるためです。
コンパイラ オプション /reference
を使用するには、/std:c++20
以降のコンパイラ オプション (/std:c++latest
など) を有効にする必要があります。 /reference
オプションは、Visual Studio 2019 バージョン 16.10 以降で使用できます。
/reference
引数が module-name
なしの filename
である場合は、実行時にファイルが開かれ、filename
引数が特定のインポートを指しているかどうかが検証されます。 /reference
引数が多数あるシナリオでは、実行時のパフォーマンスが低下する可能性があります。
module-name
は、有効なプライマリ モジュール インターフェイス ユニット名か、完全なモジュール パーティション名である必要があります。 プライマリ モジュール インターフェイス名の例を次に示します。
M
M.N.O
MyModule
my_module
完全なモジュール パーティション名の例を次に示します。
M:P
M.N.O:P.Q
MyModule:Algorithms
my_module:algorithms
モジュール参照が module-name
を使用して作成された場合は、コンパイラでその名前のインポートが検出されても、コマンド ライン上の他のモジュールは検索されません。 たとえば、次のコマンド ラインを指定したとします。
cl ... /std:c++latest /reference m.ifc /reference m=n.ifc
上の例では、コンパイラが import m;
を認識した場合、m.ifc
の検索は行われません。
例
次の表に示す 3 つのモジュールがあるとします。
モジュール | IFC ファイル |
---|---|
M |
m.ifc |
M:Part1 |
m-part1.ifc |
Core.Networking |
Networking.ifc |
filename
引数を使用した参照オプションは次のようになります。
cl ... /std:c++latest /reference m.ifc /reference m-part.ifc /reference Networking.ifc
module-name=filename
を使用した参照オプションは次のようになります。
cl ... /std:c++latest /reference m=m.ifc /reference M:Part1=m-part.ifc /reference Core.Networking=Networking.ifc
関連項目
/scanDependencies
(標準フォームでのモジュールの依存関係の一覧表示)
/sourceDependencies:directives
(モジュールとヘッダー ユニットの依存関係一覧)
/headerUnit
(ヘッダー ユニット IFC の使用)
/exportHeader
(ヘッダー ユニットの作成)