variadic2.cpp 584 B

12345678910111213141516171819202122232425262728293031
  1. // variadic2.cpp
  2. #include <iostream>
  3. #include <string>
  4. // definition for 0 parameters
  5. void show_list() {}
  6. // definition for 1 parameter
  7. template<typename T>
  8. void show_list(const T& value)
  9. {
  10. std::cout << value << '\n';
  11. }
  12. // definition for 2 or more parameters
  13. template<typename T, typename... Args>
  14. void show_list(const T& value, const Args&... args)
  15. {
  16. std::cout << value << ", ";
  17. show_list(args...);
  18. }
  19. int main()
  20. {
  21. int n = 14;
  22. double x = 2.71828;
  23. std::string mr = "Mr. String objects!";
  24. show_list(n, x);
  25. show_list(x*x, '!', 7, mr);
  26. return 0;
  27. }