From e12930330728a4a2c42f6f8874c751a30288f891 Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Fri, 13 Feb 2015 17:30:19 +1100 Subject: [PATCH] debug: add free sanity/valid functions --- debug.hpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/debug.hpp b/debug.hpp index 2e90f6cf..6a715362 100644 --- a/debug.hpp +++ b/debug.hpp @@ -283,6 +283,31 @@ void disable_fpe (void); /////////////////////////////////////////////////////////////////////////////// namespace debug { void init (void); + + + template + bool valid (const T&); + + + template class T, typename ...Args> + struct validator { + static bool is_valid (const T&); + }; + + + template class T, typename ...Args> + bool valid (const T &v) + { return validator::is_valid (v); } + + + template + void sanity (const T &t) + { CHECK (valid (t)); } + + + template class T, typename ...Args> + void sanity (const T &t) + { CHECK (valid (t)); } }