48 lines
1.3 KiB
C++
48 lines
1.3 KiB
C++
#ifndef STREAMFORMAT_H
|
|
#define STREAMFORMAT_H
|
|
|
|
#include <chrono>
|
|
#include <list>
|
|
#include <ostream>
|
|
#include <vector>
|
|
|
|
namespace std {
|
|
template <typename T1, typename T2>
|
|
std::ostream &operator<<(std::ostream &stream, const std::pair<T1, T2> &element) {
|
|
stream << "[" << element.first << "," << element.second << "]";
|
|
return stream;
|
|
}
|
|
|
|
template <typename T>
|
|
std::ostream &operator<<(std::ostream &stream, const std::vector<T> &element) {
|
|
stream << "[";
|
|
for (const auto &e : element) {
|
|
stream << e << ",";
|
|
}
|
|
stream << "]";
|
|
return stream;
|
|
}
|
|
|
|
template <typename T>
|
|
std::ostream &operator<<(std::ostream &stream, const std::list<T> &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 <typename T1, typename T2>
|
|
bool operator==(const std::pair<T1, T2> &lhs, const std::pair<T1, T2> &rhs) {
|
|
return lhs.first == rhs.first && lhs.second == rhs.second;
|
|
}
|
|
|
|
#include "StreamFormat.inl"
|
|
|
|
#endif // STREAMFORMAT_H
|