| 102 | |
| 103 | template <class T> |
| 104 | auto operator<<(std::ostream& os, const T& x) -> decltype(os << x.name()) |
| 105 | { |
| 106 | os << x.name(); |
| 107 | char delim = '['; |
| 108 | reflect_each(x, [&](auto&& y, auto name) { |
| 109 | os << delim; |
| 110 | os << name << "="; |
| 111 | stream_write_value(os, y); |
| 112 | delim = ','; |
| 113 | }); |
| 114 | if(delim == ',') |
| 115 | os << "]"; |
| 116 | return os; |
| 117 | } |
| 118 | |
| 119 | template <class T, class U> |
| 120 | auto operator==(const T& x, const U& y) -> decltype(x.name() == y.name()) |
nothing calls this directly
no test coverage detected