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<>{}に展開することでリストとして扱えるようになる。