#ifndef TUPLE_IO_HPP_ #define TUPLE_IO_HPP_ #include #include #include template std::istream &operator>>(std::istream &is, std::tuple &p) { std::apply([&](Ts &...args) { ((is >> args), ...); }, p); return is; } template std::ostream &operator<<(std::ostream &os, std::tuple const &p) { std::apply( [&](Ts const &...args) { std::size_t n{0}; ((os << args << (++n != sizeof...(Ts) ? " " : "")), ...); }, p); return os; } #endif