fork download
  1. #include <iostream>
  2.  
  3. template<typename T>
  4. auto sum_impl(T accumulated)
  5. {
  6. return accumulated;
  7. }
  8.  
  9. template<typename T, typename... Args>
  10. auto sum_impl(T accumulated, T value, Args... args)
  11. {
  12. return sum_impl(accumulated + value, args...);
  13. }
  14.  
  15. template<typename... Args>
  16. auto sum(Args... args)
  17. {
  18. return sum_impl(0, args...);
  19. }
  20.  
  21. int main(int argc, char* argv[])
  22. {
  23. std::cout << sum(5, 3, 4, 5, 2, 3, 5);
  24. return 0;
  25. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
27