maths: move is_integer into headers to avoid param explosion
This commit is contained in:
parent
60286202fd
commit
e71bd9f621
16
maths.cpp
16
maths.cpp
@ -57,22 +57,6 @@ template uint32_t util::log2 (uint32_t);
|
|||||||
template uint64_t util::log2 (uint64_t);
|
template uint64_t util::log2 (uint64_t);
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
template <typename T>
|
|
||||||
bool
|
|
||||||
util::is_integer (const T &value)
|
|
||||||
{
|
|
||||||
T integer;
|
|
||||||
return exactly_equal (std::modf (value, &integer),
|
|
||||||
static_cast<T> (0.0));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
template bool util::is_integer (const double&);
|
|
||||||
template bool util::is_integer (const float&);
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
namespace util {
|
namespace util {
|
||||||
template <>
|
template <>
|
||||||
|
17
maths.hpp
17
maths.hpp
@ -263,8 +263,21 @@ namespace util {
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
// Properties
|
// Properties
|
||||||
template <typename T>
|
template <typename T>
|
||||||
bool
|
constexpr
|
||||||
is_integer (const T& value);
|
std::enable_if_t<std::is_integral<T>::value, bool>
|
||||||
|
is_integer (T)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
constexpr
|
||||||
|
std::enable_if_t<std::is_floating_point<T>::value, bool>
|
||||||
|
is_integer (T t)
|
||||||
|
{
|
||||||
|
T i = 0;
|
||||||
|
return exactly_equal (std::modf (t, &i), T{0});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user