Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include <string>
  4. #include <tuple>
  5. #include <utility>
  6. #include <vector>
  7.  
  8. template <class T, class Tuple, size_t... Is>
  9. inline std::vector<T> tuple_to_vector_impl(const Tuple & tuple, std::index_sequence<Is...>)
  10. {
  11. return { std::get<Is>(tuple)... };
  12. }
  13.  
  14. template <class T, class... Ts>
  15. inline std::vector<T> tuple_to_vector(const std::tuple<T, Ts...> & tuple)
  16. {
  17. return tuple_to_vector_impl<T>(tuple, std::index_sequence_for<T, Ts...>{});
  18. }
  19.  
  20. template <class... Ts>
  21. inline std::string print_tuple(const std::tuple<Ts...> & tuple)
  22. {
  23. std::string str;
  24. auto values = tuple_to_vector(tuple);
  25. bool first = true;
  26. for (const auto & v : values) {
  27. if (!first) {
  28. str += ", ";
  29. } else {
  30. first = false;
  31. }
  32. str += std::to_string(v);
  33. }
  34. return str;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement