(でも {} で初期化してたと思うからあれはたぶん配列の初期化と一緒でこれとは違う?)
例えばstd::arrayを内部にもつクラスの、std::arrayの初期化を伴うコンストラクタを考えてみる。
- initializer_listで受け取るようにする
- 可変長テンプレートで受け取るようにする
////std::array class::data;
ctor(std::initializer_list list) {
if (list.size() > this->data.size()){
std::copy(list.begin(), list.begin() + this->data.size(), this->data.begin());
}
else{
std::copy(list.begin(), list.end(), this->data.begin());
}
要素数が確定してしまっていてそれらをどう初期化するのかが問題ならばinitializer_listでも良い、くらい限定的なんだろうかな・・・