問題タブ [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.
c++ - 宣言の要素型を暗黙的に使用して std::array を初期化する
次のコードstd::array
では、要素タイプの使用を最小限に抑えて配列 (生の C クラシックおよび ) を初期化しようとしていますS
。
を使用するraw_array
と、一度だけ指定できますS
。しかし、同じことを試してもstd::array
うまくいきません (コメントを参照してくださいstd_array_no_type
)。S
各または (これも質問の興味深い部分です) 初期化子リストの最初の要素に対してのみ型を指定する必要があります(「参考文献」を参照std_array_one_type_only
)。
std::array
では、型を一度だけ使用して初期化されたオブジェクトを定義する方法はありますS
か? いいえの場合、標準のどの条項に従っていますか? そして、なぜ単一の明示的な型をコンパイルS
できるのですか?std_array_one_type_only
c++ - C++ - 構造体と同じ構文で構造体の周りにラッパー クラスを構築する
これは私の前の質問へのフォローアップです: C++ - ラップされたデータと同じ構文でラッパー クラスを構築する
基本的に、いくつかのデータの周りにラッパーテンプレートを作成し、データと同じ構文でラッパーを構築/設定しようとしています。
構造体のようなものを使用する場合、パラメーターを転送することでそれを実現できるため、構文は次のようになります。
問題は、構造体でそのコンストラクターが定義されている場合にのみ機能することです。定義せずに機能させることはできますか?
現在、ラッパーは次のようになっています。
c++ - C++ 17でPOD型のプレーン配列を持つフィールドを数えますか?
集約初期化の能力をテストし、サイズをカウントするために構造体をタプルに変換する手法を使用して、いくつかのスニペットから次を収集しましたが、配列がある場合、構造体は中かっこを省略して構造化することができますバインディングが正しくありません。C ++ 17でこれに対する回避策/その他のトリックはありますか?
c++ - 集約の初期化のために空の基本クラスを非表示にします
次のコードを検討してください。
B を初期化する方法は次のとおりB<int, 3> b = { {}, {1, 2, 3} };
です。基本クラスに不要な空の {} を使用したくないのです。Jarod42 によって提案された解決策があります here、ただし、要素のデフォルトの初期化では機能しません: B<int, 3> b = {1, 2, 3};
is fine but B<int, 3> b = {1};
is not: b.data[1]
and b.data[2]
are not default initialized to 0, そしてコンパイラエラーが発生します. 基本クラスを構築から「隠す」方法はありますか (または c++ 20 を使用する場合) はありますか?