私は本質的にこれと同じであるいくつかのコードをデバッグしています:
struct Foo { int a; int b; };
struct Bar { Bar() {} Foo foo{0}; };
私はのインスタンスを作成するときBar
、それは両方のように思えるa
し、b
ゼロに初期化されています。これは保証されていますか?これは仕様のどこにありますか?
@ skratchi.atこれらはかっこではありません(かっこを使用すると別の意味になります)
—
オービットの
表面的にはこのような単純な質問ですが、C ++ initは非常に複雑なので、なぜあなたがそれを求めているのか理解できます。ここで適切な集約初期化が行われているという推測を危険にさらす可能性がありますが、標準を掘り下げることなく、答えが何であるかわかりません。悲しいですか?
—
オービットのライトネスレース
これは配列のためですが、... stackoverflow.com/questions/1065774/...
—
YSC
struct Foo { int a{}; int b{}; };
変数名の後の余分な中括弧に注意してください。その後、常に初期化された値を取得します。定義済みの動作で他の値で初期化する必要がある場合は、他のすべてのクラスのように