C++ で ctor が呼ばれる前にメンバ変数が valid にならないといけないせいで unique_ptr における nullptr みたいな無効値を許さなくてはいけないの、マジで涙を流してデフォルトコンストラクタ用意してる
@lo48576@mastodon.cardina1.red
よくわからんのでプログラムのシナリオおくれ
@tacumi
・HardwareManager がある
・HardwareManager が、ハードウェアへのアクセス権付きのハンドルや、 GPU 上にアロケート・アップロードされたリソースのハンドル等を持つ
・リソースのアップロード等は複雑な手順やエラー処理や変数間の依存関係を伴うため、 Ctor():m_field{field}, m_other{other}, ... {} のような形式で最初に初期化するのは困難
みたいな状況が考えられます
@tacumi まあ一応そういうロジックを外の関数に括り出して HardwareManager を返すような普通の関数にしといて、
HardwareManager():HardwareManager/*This is private ctor*/{createHardwareManager()}
{}
みたいにするという小手先テクもあるんですけど。そういう文法的なことで面倒なことしたくないんですよね