#ifndef STREAMFORMAT_H #define STREAMFORMAT_H #include #include #include #include namespace std { template std::ostream &operator<<(std::ostream &stream, const std::pair &element) { stream << "[" << element.first << "," << element.second << "]"; return stream; } template std::ostream &operator<<(std::ostream &stream, const std::vector &element) { stream << "["; for (const auto &e : element) { stream << e << ","; } stream << "]"; return stream; } template std::ostream &operator<<(std::ostream &stream, const std::list &element) { stream << "["; for (const auto &e : element) { stream << e << ","; } stream << "]"; return stream; } std::ostream &operator<<(std::ostream &stream, const std::chrono::milliseconds &element); std::ostream &operator<<(std::ostream &stream, const std::chrono::microseconds &element); } // namespace std template bool operator==(const std::pair &lhs, const std::pair &rhs) { return lhs.first == rhs.first && lhs.second == rhs.second; } #include "StreamFormat.inl" #endif // STREAMFORMAT_H