Fix all stream output operators: operator<< might return a different stream type

This commit is contained in:
Nikita Lisitsa 2020-11-06 17:34:57 +03:00
parent 95231632a2
commit 1771f56508
6 changed files with 18 additions and 12 deletions

View file

@ -241,7 +241,8 @@ namespace psemek::geom
template <typename Stream, typename T> template <typename Stream, typename T>
Stream & operator << (Stream & os, interval<T> const & i) Stream & operator << (Stream & os, interval<T> const & i)
{ {
return os << '[' << i.min << " .. " << i.max << ']'; os << '[' << i.min << " .. " << i.max << ']';
return os;
} }
} }

View file

@ -17,9 +17,10 @@ namespace psemek::geom
{ {
switch (s) switch (s)
{ {
case sign_t::positive: return o << "positive"; case sign_t::positive: o << "positive"; break;
case sign_t::zero: return o << "zero"; case sign_t::zero: o << "zero"; break;
case sign_t::negative: return o << "negative"; case sign_t::negative: o << "negative"; break;
default: o << "(unknown)"; break;
} }
return o; return o;

View file

@ -40,7 +40,8 @@ namespace psemek::geom
os << '(' << s[0]; os << '(' << s[0];
for (std::size_t i = 1; i <= K; ++i) for (std::size_t i = 1; i <= K; ++i)
os << ", " << s[i]; os << ", " << s[i];
return os << ')'; os << ')';
return os;
} }
} }

View file

@ -16,12 +16,13 @@ namespace psemek::log
{ {
switch (l) switch (l)
{ {
case level::debug: return s << "debug"; case level::debug: s << "debug"; break;
case level::info: return s << "info"; case level::info: s << "info"; break;
case level::warning: return s << "warning"; case level::warning: s << "warning"; break;
case level::error: return s << "error"; case level::error: s << "error"; break;
default: return s << "(unknown)"; default: s << "(unknown)"; break;
} }
return s;
} }
} }

View file

@ -8,7 +8,8 @@ namespace psemek::util
template <typename Stream> template <typename Stream>
Stream & operator << (Stream & os, empty) Stream & operator << (Stream & os, empty)
{ {
return os << "empty"; os << "empty";
return os;
} }
} }

View file

@ -81,7 +81,8 @@ namespace psemek::util
template <typename OStream, typename T> template <typename OStream, typename T>
OStream & operator << (OStream & os, statistics<T> const & s) OStream & operator << (OStream & os, statistics<T> const & s)
{ {
return os << "mean = " << s.mean() << ", var = " << s.var() << ", range = [" << s.min() << " .. " << s.max() << "]"; os << "mean = " << s.mean() << ", var = " << s.var() << ", range = [" << s.min() << " .. " << s.max() << "]";
return os;
} }
} }