Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <tuple>
- namespace ext
- {
- namespace detail
- {
- template<typename ...Args, std::size_t ...indicies>
- void print_impl(std::ostream& os, std::tuple<Args...> tuple, std::index_sequence<indicies...>)
- {
- os << '(' << std::get<0>(tuple);
- (os << ... << (os << ", ", std::get<indicies+1>(tuple)));
- os << ')';
- }
- }
- template<typename ...Args>
- void print(std::ostream& os, std::tuple<Args...> tuple)
- {
- detail::print_impl(os, tuple, std::make_index_sequence<sizeof...(Args)-1>());
- }
- }
- template<typename ...Args>
- std::ostream& operator<<(std::ostream &os, std::tuple<Args...> tuple)
- {
- ext::detail::print_impl(os, tuple, std::make_index_sequence<sizeof...(Args)-1>());
- return os;
- }
- int main()
- {
- std::cout << "tuple: " << std::make_tuple("Hello World", 10, 10.2) << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement