Modulesと依存関係
公開する単位
.ixxにexport moduleと公開宣言を置き、.cppにmoduleを指定して実装を分ける構成です。例えばComponentManagerはComponent.ComponentManagerとしてimportします。すべてのコードがこの分割方式に統一されているわけではなく、インライン実装もあります。
cpp
import Object.GameObject;
import Component.MoveWithKey;呼び出し側は機能のモジュール名を明示します。export importは依存先を利用側にも再公開します。一方、ファイルシステム上のフォルダー名とモジュール名は完全一致しません。例えばComponentBaseのモジュール名はComponentです。
外部ヘッダーとの境界
DxLibやWindowsヘッダーはmodule;のグローバルモジュールフラグメントでincludeする例があります。標準ライブラリにはimport <memory>;などのヘッダーユニットも使われています。
利点と制約
公開単位と依存関係をコードで追える点は教材になります。ただしビルド時間の短縮は測定していません。Visual Studioのモジュール依存スキャンとプロジェクト登録が必要で、新規ファイルを置くだけではビルド対象になりません。
全モジュール索引でモジュール名とファイルを対応付けています。