up:: Cpp
source:: C++ 関数の可変長引数を実現する方法【可変長引数テンプレート】 | MaryCore
可変長引数を実現するための一つの方法。
template<class... A>
int sum(A... args) {
int s = 0;
for (int i : std::initializer_list<int>{args...}) {
s += i;
}
return s;
}
classの後に…を付けることで、可変個の引数を受け取れる。
そのままだと一塊になっていて扱いづらいので、std::initializer_list<>{}
に展開することでリストとして扱えるようになる。