Clang compilation fixes: use non-template stream output operators
This commit is contained in:
parent
f0611657ac
commit
d7469920de
12 changed files with 52 additions and 22 deletions
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/detail/array.hpp>
|
#include <psemek/geom/detail/array.hpp>
|
||||||
#include <psemek/geom/interval.hpp>
|
#include <psemek/geom/interval.hpp>
|
||||||
#include <psemek/geom/point.hpp>
|
#include <psemek/geom/point.hpp>
|
||||||
|
|
@ -239,8 +241,8 @@ namespace psemek::geom
|
||||||
return *this = *this | b;
|
return *this = *this | b;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T, std::size_t N>
|
template <typename T, std::size_t N>
|
||||||
Stream & operator << (Stream & os, box<T, N> const & b)
|
std::ostream & operator << (std::ostream & os, box<T, N> const & b)
|
||||||
{
|
{
|
||||||
for (std::size_t i = 0; i < N; ++i)
|
for (std::size_t i = 0; i < N; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
@ -250,8 +252,8 @@ namespace psemek::geom
|
||||||
return i.min + i.length() * t;
|
return i.min + i.length() * t;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T>
|
template <typename T>
|
||||||
Stream & operator << (Stream & os, interval<T> const & i)
|
std::ostream & operator << (std::ostream & os, interval<T> const & i)
|
||||||
{
|
{
|
||||||
os << '[' << i.min << " .. " << i.max << ']';
|
os << '[' << i.min << " .. " << i.max << ']';
|
||||||
return os;
|
return os;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/detail/array.hpp>
|
#include <psemek/geom/detail/array.hpp>
|
||||||
#include <psemek/geom/vector.hpp>
|
#include <psemek/geom/vector.hpp>
|
||||||
#include <psemek/geom/math.hpp>
|
#include <psemek/geom/math.hpp>
|
||||||
|
|
@ -303,8 +305,8 @@ namespace psemek::geom
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T, std::size_t R, std::size_t C>
|
template <typename T, std::size_t R, std::size_t C>
|
||||||
Stream & operator << (Stream & os, matrix<T, R, C> const & m)
|
std::ostream & operator << (std::ostream & os, matrix<T, R, C> const & m)
|
||||||
{
|
{
|
||||||
for (std::size_t i = 0; i < R; ++i)
|
for (std::size_t i = 0; i < R; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/detail/array.hpp>
|
#include <psemek/geom/detail/array.hpp>
|
||||||
#include <psemek/geom/vector.hpp>
|
#include <psemek/geom/vector.hpp>
|
||||||
|
|
||||||
|
|
@ -188,8 +190,8 @@ namespace psemek::geom
|
||||||
return normalized(ort((ps - p0)...));
|
return normalized(ort((ps - p0)...));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T, std::size_t N>
|
template <typename T, std::size_t N>
|
||||||
Stream & operator << (Stream & os, point<T, N> const & p)
|
std::ostream & operator << (std::ostream & os, point<T, N> const & p)
|
||||||
{
|
{
|
||||||
os << '(' << p[0];
|
os << '(' << p[0];
|
||||||
for (std::size_t i = 1; i < N; ++i)
|
for (std::size_t i = 1; i < N; ++i)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <psemek/util/assert.hpp>
|
#include <psemek/util/assert.hpp>
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
namespace psemek::geom
|
namespace psemek::geom
|
||||||
{
|
{
|
||||||
|
|
@ -12,8 +13,7 @@ namespace psemek::geom
|
||||||
negative = -1,
|
negative = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename OStream>
|
inline std::ostream & operator << (std::ostream & o, sign_t s)
|
||||||
OStream & operator << (OStream & o, sign_t s)
|
|
||||||
{
|
{
|
||||||
switch (s)
|
switch (s)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/point.hpp>
|
#include <psemek/geom/point.hpp>
|
||||||
|
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
@ -34,8 +36,8 @@ namespace psemek::geom
|
||||||
template <typename Point>
|
template <typename Point>
|
||||||
using triangle = simplex<Point, 2>;
|
using triangle = simplex<Point, 2>;
|
||||||
|
|
||||||
template <typename Stream, typename Point, std::size_t K>
|
template <typename Point, std::size_t K>
|
||||||
Stream & operator << (Stream & os, simplex<Point, K> const & s)
|
std::ostream & operator << (std::ostream & os, simplex<Point, K> const & s)
|
||||||
{
|
{
|
||||||
os << '(' << s[0];
|
os << '(' << s[0];
|
||||||
for (std::size_t i = 1; i <= K; ++i)
|
for (std::size_t i = 1; i <= K; ++i)
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <psemek/geom/detail/array.hpp>
|
#include <psemek/geom/detail/array.hpp>
|
||||||
|
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|
@ -340,8 +342,8 @@ namespace psemek::geom
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T, std::size_t N>
|
template <typename T, std::size_t N>
|
||||||
Stream & operator << (Stream & os, vector<T, N> const & v)
|
std::ostream & operator << (std::ostream & os, vector<T, N> const & v)
|
||||||
{
|
{
|
||||||
if constexpr (N == 0)
|
if constexpr (N == 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
namespace psemek::log
|
namespace psemek::log
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
@ -11,8 +13,7 @@ namespace psemek::log
|
||||||
error,
|
error,
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Stream>
|
inline std::ostream & operator << (std::ostream & s, level l)
|
||||||
Stream & operator << (Stream & s, level l)
|
|
||||||
{
|
{
|
||||||
switch (l)
|
switch (l)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,13 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
namespace psemek::util
|
namespace psemek::util
|
||||||
{
|
{
|
||||||
|
|
||||||
struct empty{};
|
struct empty{};
|
||||||
|
|
||||||
template <typename Stream>
|
std::ostream & operator << (std::ostream & os, empty)
|
||||||
Stream & operator << (Stream & os, empty)
|
|
||||||
{
|
{
|
||||||
os << "empty";
|
os << "empty";
|
||||||
return os;
|
return os;
|
||||||
|
|
|
||||||
14
libs/util/include/psemek/util/io_fwd.hpp
Normal file
14
libs/util/include/psemek/util/io_fwd.hpp
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
|
||||||
|
template<typename Char, typename Traits>
|
||||||
|
class basic_istream;
|
||||||
|
|
||||||
|
template<typename Char, typename Traits>
|
||||||
|
class basic_ostream;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <psemek/util/io_fwd.hpp>
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <limits>
|
#include <limits>
|
||||||
|
|
||||||
|
|
@ -82,8 +84,8 @@ namespace psemek::util
|
||||||
return std::sqrt(sum_sqr_ / count_ - m * m);
|
return std::sqrt(sum_sqr_ / count_ - m * m);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename OStream, typename T>
|
template <typename T>
|
||||||
OStream & operator << (OStream & os, statistics<T> const & s)
|
std::ostream & operator << (std::ostream & os, statistics<T> const & s)
|
||||||
{
|
{
|
||||||
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;
|
return os;
|
||||||
|
|
|
||||||
|
|
@ -67,8 +67,8 @@ namespace psemek::test
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Stream, typename T>
|
template <typename T>
|
||||||
Stream & operator << (Stream & s, std::optional<T> const & o)
|
std::ostream & operator << (std::ostream & s, std::optional<T> const & o)
|
||||||
{
|
{
|
||||||
if (o)
|
if (o)
|
||||||
s << *o;
|
s << *o;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue