Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <tuple>
  3.  
  4. namespace ext
  5. {
  6. namespace detail
  7. {
  8. template<typename ...Args, std::size_t ...indicies>
  9. void print_impl(std::ostream& os, std::tuple<Args...> tuple, std::index_sequence<indicies...>)
  10. {
  11. os << '(' << std::get<0>(tuple);
  12. (os << ... << (os << ", ", std::get<indicies+1>(tuple)));
  13. os << ')';
  14. }
  15. }
  16.  
  17. template<typename ...Args>
  18. void print(std::ostream& os, std::tuple<Args...> tuple)
  19. {
  20. detail::print_impl(os, tuple, std::make_index_sequence<sizeof...(Args)-1>());
  21. }
  22. }
  23.  
  24.  
  25. template<typename ...Args>
  26. std::ostream& operator<<(std::ostream &os, std::tuple<Args...> tuple)
  27. {
  28. ext::detail::print_impl(os, tuple, std::make_index_sequence<sizeof...(Args)-1>());
  29. return os;
  30. }
  31.  
  32. int main()
  33. {
  34. std::cout << "tuple: " << std::make_tuple("Hello World", 10, 10.2) << '\n';
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement