debug: add free sanity/valid functions
This commit is contained in:
parent
ab06dac6a4
commit
e129303307
25
debug.hpp
25
debug.hpp
@ -283,6 +283,31 @@ void disable_fpe (void);
|
|||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
namespace debug {
|
namespace debug {
|
||||||
void init (void);
|
void init (void);
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
bool valid (const T&);
|
||||||
|
|
||||||
|
|
||||||
|
template <template<typename> class T, typename ...Args>
|
||||||
|
struct validator {
|
||||||
|
static bool is_valid (const T<Args...>&);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
template <template<typename> class T, typename ...Args>
|
||||||
|
bool valid (const T<Args...> &v)
|
||||||
|
{ return validator<T,Args...>::is_valid (v); }
|
||||||
|
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
void sanity (const T &t)
|
||||||
|
{ CHECK (valid (t)); }
|
||||||
|
|
||||||
|
|
||||||
|
template <template<typename> class T, typename ...Args>
|
||||||
|
void sanity (const T<Args...> &t)
|
||||||
|
{ CHECK (valid (t)); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user