Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <string>
- #include <tuple>
- #include <utility>
- #include <vector>
- template <class T, class Tuple, size_t... Is>
- inline std::vector<T> tuple_to_vector_impl(const Tuple & tuple, std::index_sequence<Is...>)
- {
- return { std::get<Is>(tuple)... };
- }
- template <class T, class... Ts>
- inline std::vector<T> tuple_to_vector(const std::tuple<T, Ts...> & tuple)
- {
- return tuple_to_vector_impl<T>(tuple, std::index_sequence_for<T, Ts...>{});
- }
- template <class... Ts>
- inline std::string print_tuple(const std::tuple<Ts...> & tuple)
- {
- std::string str;
- auto values = tuple_to_vector(tuple);
- bool first = true;
- for (const auto & v : values) {
- if (!first) {
- str += ", ";
- } else {
- first = false;
- }
- str += std::to_string(v);
- }
- return str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement