extent: prefer constexpr functions over static variables

This commit is contained in:
Danny Robson 2016-12-12 17:06:55 +11:00
parent f6116eb63e
commit b5932c4537
3 changed files with 25 additions and 15 deletions

View File

@ -86,19 +86,6 @@ extent<S,T>::empty (void) const
} }
///////////////////////////////////////////////////////////////////////////////
template <size_t S, typename T>
const extent<S,T> extent<S,T>::MIN { 0 };
//-----------------------------------------------------------------------------
template <size_t S, typename T>
const extent<S,T> extent<S,T>::MAX
{
std::numeric_limits<T>::max ()
};
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
template <size_t S, typename T> template <size_t S, typename T>
extent_range<S,T>::extent_range (extent<S,T> _target): extent_range<S,T>::extent_range (extent<S,T> _target):

View File

@ -51,8 +51,8 @@ namespace util {
bool empty (void) const; bool empty (void) const;
static const extent MAX; static constexpr extent max (void);
static const extent MIN; static constexpr extent min (void);
}; };
template <size_t S, typename T> template <size_t S, typename T>

View File

@ -22,6 +22,7 @@
#define __UTIL_EXTENT_IPP #define __UTIL_EXTENT_IPP
#include <algorithm> #include <algorithm>
#include <limits>
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
@ -76,3 +77,25 @@ util::extent<S,T>::includes (point<S,U> p) const
return false; return false;
return true; return true;
} }
///////////////////////////////////////////////////////////////////////////////
template <size_t S, typename T>
constexpr
util::extent<S,T>
util::extent<S,T>::max (void)
{
return extent<S,T> {
std::numeric_limits<T>::max ()
};
}
//-----------------------------------------------------------------------------
template <size_t S, typename T>
constexpr
util::extent<S,T>
util::extent<S,T>::min (void)
{
return extent<S,T> { 0 };
}