問題タブ [aggregate-initialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
141 参照

c++ - 集約初期化リストの特定の場所で、前の場所に渡された値は、対応するメンバーから安全に読み取ることができますか?

規格によれば、上記の例で「sa」と読み、s を a=5 および b=6 に初期化しても安全ですか? もしそうなら、ほとんどのコンパイラはこの規則に従いますか?

(上記は VC10 でコンパイルされます。)

0 投票する
2 に答える
733 参照

c++ - アトミック構造体の均一な初期化?

編集: どちらもg++{{1, 2}}({1, 2})動作し、clang では動作しません。clang の回避策はありますか?

0 投票する
1 に答える
8138 参照

c++ - 非静的メンバー初期化子を持つクラスの C++11 集計初期化

標準で許可されていますか:

このクラスはまだ集約されていますか? clangはこのコードを受け入れますが、受け入れgccません。

0 投票する
1 に答える
278 参照

c++ - リスト初期化で集約型を値初期化する方法

リスト初期化構文を使用してC++ 14で集約型を値初期化するにはどうすればよいですか?

これは集合体の初期化と見なされ、 の初期化されていないメンバーに対してエラーまたは警告が生成されますAggregate_t

これはまったく可能ですか?

編集:例

g++-4.9.2 でコンパイル:

0 投票する
2 に答える
353 参照

c++ - デフォルトで構成できない構造体にユーザー定義のコンストラクターがないことは、標準に違反していますか?

struct(a) ユーザー定義のコンストラクターを持たないもの、および (b) デフォルトのコンストラクターを生成できないものを定義することができます。たとえばFoo、次のようになります。

Foo集計の初期化を使用してインスタンスを作成することもできます。

私の通常のコンパイラ (VS2012) はしぶしぶこれを受け入れますが、2 つの警告が発生します。

警告 C4510: 'Foo': 既定のコンストラクターを生成できませんでした。

警告 C4610: 構造体 'Foo' はインスタンス化できません - ユーザー定義のコンストラクターが必要です

もちろん、警告 #2 が間違っていることを証明したところです。集計の初期化を使用してインスタンス化することもできます。私が試したオンラインコンパイラは上記を受け入れるのに十分満足しているので、VS2012はこの警告に対して過度に攻撃的であると推測しています. しかし、私は確信したいのですが、このコードは大丈夫ですか、それとも技術的に標準のあいまいな部分に違反していますか?