集成体

[C++]集成体のコピー/ムーブコンストラクタを制御する

C++17にて集成体はあらゆるコンストラクタを宣言できなくなり、その結果コピーコンストラクタとムーブコンストラクタは常に暗黙定義されるようになりました。しかし時には、それをコントロールしたくなることがあります。 暗黙のコンストラクタ 集成体の利便…

[C++] 集成体のテンプレート引数推論

C++17のテンプレートな集成体とテンプレートパラメータ推論 C++17から、クラステンプレートのコンストラクタ引数からそのテンプレート引数を推論出来るようになりました。これによって、クラステンプレートを扱う際にとても便利に書けます。 // std::vector<int> </int>…

[C++]丸かっこによる集成体初期化

※この記事はC++20を相談しながら調べる会 #1の成果です。 ※内容はC++20正式策定までに変化する可能性があります。 コンストラクタとの競合 縮小変換の許可 ネストするかっこの省略(できない!) 一時オブジェクトの寿命延長(されない!) 少し詳細な考察 D…

[C++]集成体の要件とその変遷

集成体(aggregate)とは配列と幾つかの条件を満たしたクラス(union含む)の事で、集成体初期化(aggregate initialization)を行えるような型のことです。一様初期化構文の導入によってその他の初期化との見た目の差異が無くなりあまり意識されなくなった…