Thing
デフォルトのコンストラクターを持たないクラスがあります。
ここで、配列要素を一度に初期化する必要がある別のクラスを定義します。これは、既定のコンストラクターがないと、遅延代入を行うことができないためです。したがって、次のようになります。
class TwoThings
{
public:
Thing things[2];
TwoThings() : things({Thing("thing 1"),Thing("thing 2")})
{
}
}
これは正しい方法ですか?
GCC は正常にコンパイルしますが、Clang はコンパイルしませんが、「初期化リスト」を使用する必要があると述べています。二重中括弧{{ ... }}
などのいくつかの代替方法を試しましたが、Clang と同等のコンパイルを取得することができません。
Clangでデフォルトコンストラクタなしで配列を初期化する方法は?