fork download
  1. #include <tuple>
  2. #include <iostream>
  3.  
  4. template<std::size_t> struct int_{};
  5.  
  6. template<class Ch, class Tr, class Tuple, std::size_t I>
  7. void print_tuple(std::basic_ostream<Ch,Tr>& os, Tuple const& t, int_<I>){
  8. print_tuple(os, t, int_<I-1>());
  9. os << ", " << std::get<I>(t);
  10. }
  11.  
  12. template<class Ch, class Tr, class Tuple>
  13. void print_tuple(std::basic_ostream<Ch,Tr>& os, Tuple const& t, int_<0>){
  14. os << std::get<0>(t);
  15. }
  16.  
  17. template<class Ch, class Traits, class Tuple>
  18. void print(std::basic_ostream<Ch,Traits>& os, Tuple const& t){
  19. os << "(";
  20. print_tuple(os, t, int_<std::tuple_size<Tuple>::value-1>());
  21. os << ")";
  22. }
  23.  
  24. int main(){
  25. print(std::cout, std::make_tuple(5, "Hello", -0.1));
  26. }
Success #stdin #stdout 0s 2928KB
stdin
Standard input is empty
stdout
(5, Hello, -0.1)