UObjectのコンストラクタのバリエーション
UObjectのコンストラクタの話、宣言に3つのバリエーションが有る
- ClassName() のデフォルトコンストラクタ
- ClassName(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) の形をとるもの
- 何も宣言しない(GENERATED_BODY()のみ)
こちらのページでも2種類あることが解説されているが、何が違うのかがよくわからない
続きを読む
IWYUでコーディングしよう
IWYUとは
4.15で追加された一つの要素として、C++コンパイルの高速化が上げられている
これは、UEのソースコード全体がIWYU(Include-What-You-Use)という方法で再構築された事によるもので、
従来、Engine.h等、同モジュール内の全ヘッダーが網羅されたヘッダー(Monolithic Headerというらしい)をインクルードしていたが、実際に使用している機能はその一部分であることがほとんどであったため、これを必要最低限のインクルードに書き換えることでコンパイル時間の短縮が実現されたのこと、元ネタはそういうツールっぽい
またプラグインのモジュールでもPCHファイルを明示的にインクルードしなくて良くなったなど、なんか微妙に色々変わっている
従来のMonolithic Headerをインクルードするタイプのコーディングは現在も有効だけれども、ビルド時にユーザーが作成したコードに対してもIWYUのオプションが使えるようになっているので、つかっていきましょう