fork download
  1. #include <algorithm>
  2. #include <iostream>
  3.  
  4. template <typename T>
  5. T sum(const T& v) { return v; }
  6.  
  7. template <typename T, std::size_t N>
  8. T sum(const T (&v)[N]) { return std::accumulate(std::begin(v), std::end(v), T{}); }
  9.  
  10. template <typename T, typename... Ts>
  11. auto sum(const T& v, const Ts&... rest) {
  12. return sum(v) + sum(rest...);
  13. }
  14.  
  15. int main()
  16. {
  17. int a[] = {1, 2, 3};
  18. std::cout << sum(1, 2, 3, a);
  19. }
  20.  
Success #stdin #stdout 0s 3096KB
stdin
Standard input is empty
stdout
12