問題タブ [list-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 投票する
2 に答える
7565 参照

c++ - ={} の初期化がタプルで機能しないのはなぜですか?

私にとって apairは a の特殊なケースですがtuple、次のことには驚かされます。

{}初期化に使用するときに違いがあるのはなぜtupleですか?

私も試しg++ -std=c++1yましたが、まだエラーがあります:

0 投票する
3 に答える
2367 参照

c++ - C++で変数を初期化する正しい方法は何ですか?

私は次のコードを持っています:

ここで、a と b は同じ型の変数です。

上記の2つの初期化の違いと、どの条件でどちらを優先する必要があるかを知りたいですか? あらゆる種類の助けをいただければ幸いです。

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

c++ - マルチベクトルへの多次元ブレースで囲まれた初期化子リスト

私が望むのは、中括弧で囲まれた初期化子リストを介して 5x5 マトリックスを生成する可能性です。後で次のようになります。

そのために、現時点ではベクターに対してのみ機能する Matrix5T クラスがあります。

だから私は次のことができます:

現時点では、多次元ブレースで囲まれた初期化子リストによって初期化されたクラスに多次元ベクトルを持たせるための解決策が見つかりません。

たとえば、次のことを試しましたが、エラーが発生しました。

エラーは、イニシャライザ リストから多次元ベクトルへの変換が機能しないことを示しています。

では、どうすればこれを修正できますか?

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

c++ - C++11 でのリスト初期化の利点

これまでのところ、リストの初期化(別名、一様な初期化) の次の使用法を見つけました。

1) 導入前はリスト初期化機能

しかしC++11では

2) 動的配列要素は静的に初期化できます。たとえば、次のプログラムは C++03 では無効ですが、C++11 以降では有効です。

3)最も厄介な構文解析の問題を解決します

リストの初期化の他の利点を教えてください。上記の 3 を除いて、リストの初期化の利点はまだありますか?

あなたの答えは高く評価されています。

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

c++ - C++ のブレース初期化構文をよりよく理解しようとする

次のコードが違法なのはなぜですか?

これはうまくいきますが:

IDEOne のコード: http://ideone.com/tElw1w

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

c++ - この変数が C++14 の g++ で initializer_list として推定されないのはなぜですか?

次のプログラムを検討してください。

オプションを使用しても、ideone で問題なくコンパイルされ-std=c++14ます。ここでライブ デモを参照してください。しかし、C++14 では、変数はthisに従ってi推定される必要があります。initializer_list

ブレースの初期化のための新しい型推定規則を実装する C++1z の提案があります。

直接リスト初期化の場合:

  1. 要素が 1 つしかない波括弧初期化リストの場合、自動推定はそのエントリから推定します。

  2. 複数の要素を持つ波括弧初期化リストの場合、自動推論は不適切な形式になります。

[例:

自動 x1 = { 1, 2 }; // decltype(x1) は std::initializer_list です

自動 x2 = { 1, 2.0 }; // エラー: 要素の型を推測できません

自動 x3{ 1, 2 }; // エラー: 単一の要素ではありません

自動 x4 = { 3 }; // decltype(x4) は std::initializer_list です

自動 x5{ 3 }; // decltype(x5) は int.

--終了例】

そのため、ルールは C++17 で変更されました。そのため、 を使用すると、プログラムはコンパイルされません-std=c++14。これは g++ のバグですか? 変数は C++14 のようにi推定されるべきではありませんか?initializer_list

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

c++ - int a[] { (functioncall(a1, a2), 0)...}; (無効(a)); この構文は何を/意味しますか?

std::vector コンテナーを連結するために、次の構文の使用を提案するこの post variadic テンプレート関数に出くわしました。

私はこれを見たことがないので、それがどのように機能するかを理解するためにそれをいじり始めました:

これは、副作用もある動的に生成された初期化リストのようなものですか? 0上記が問題ではないという事実にも困惑しています。-1 と 5 を代入すると、これらの値もそれぞれ問題なく機能しました。

それで、誰かがこのテクニック/構文の名前と、上の2行で正確に何が起こっているのか教えてもらえますか? 関連するSOの投稿を見逃していた場合は、ご指摘いただきありがとうございます。