fork download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. void append_to_stream(std::ostream &stream)
  5. { }
  6.  
  7. template <typename T, typename... Args>
  8. void append_to_stream(std::ostream &stream, T first, Args&&... rest)
  9. {
  10. stream << first;
  11. append_to_stream(stream, rest...);
  12. }
  13.  
  14. template<class e, class t, class a> //string version
  15. auto get_endl(const std::basic_string<e,t,a>&) -> decltype(&std::endl<e,t>)
  16. { return std::endl<e,t>; }
  17.  
  18. template<class e, class t> //ostream version
  19. auto get_endl(const std::basic_ostream<e,t>&) -> decltype(&std::endl<e,t>)
  20. { return std::endl<e,t>; }
  21.  
  22. int main () {
  23. std::ostream& stream = std::cout;
  24. append_to_stream(stream,
  25. get_endl(stream),
  26. get_endl(stream));
  27. }
Success #stdin #stdout 0s 2828KB
stdin
Standard input is empty
stdout