vector: add validator specialisation
This commit is contained in:
parent
4c5bc46ad9
commit
52fcb847c9
19
vector.cpp
19
vector.cpp
@ -86,13 +86,17 @@ template util::vector2d util::to_euler (util::vector3d);
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
template <size_t S, typename T>
|
||||
void
|
||||
util::vector<S,T>::sanity (void) const
|
||||
{
|
||||
CHECK (std::all_of (std::begin (this->data),
|
||||
std::end (this->data),
|
||||
[] (T i) { return !std::isnan (i); }));
|
||||
}
|
||||
struct util::debug::validator<vector<S,T>> {
|
||||
static bool
|
||||
is_valid (vector<S,T> const& val)
|
||||
{
|
||||
return std::all_of (
|
||||
std::begin (val.data),
|
||||
std::end (val.data),
|
||||
[] (auto v) { return !std::isnan (v); }
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@ -117,6 +121,7 @@ util::operator>> (const json::tree::node &node, util::vector<S,T> &v)
|
||||
//-----------------------------------------------------------------------------
|
||||
#define INSTANTIATE_S_T(S,T) \
|
||||
template struct util::vector<S,T>; \
|
||||
template struct util::debug::validator<vector<S,T>>; \
|
||||
template const json::tree::node& util::operator>> (const json::tree::node&, util::vector<S,T>&);
|
||||
|
||||
|
||||
|
@ -56,8 +56,6 @@ namespace util {
|
||||
// constants
|
||||
static constexpr vector<S,T> ones (void) { return vector<S,T> {1}; }
|
||||
static constexpr vector<S,T> zeros (void) { return vector<S,T> {0}; }
|
||||
|
||||
void sanity (void) const;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
|
Loading…
Reference in New Issue
Block a user