From 6a6e7d012b2baed7658eaceedee6eabeeb995d02 Mon Sep 17 00:00:00 2001 From: Richard Roberts Date: Thu, 4 Jul 2013 03:20:37 +0000 Subject: [PATCH] Added assert_throw macro. --- gtsam/base/types.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gtsam/base/types.h b/gtsam/base/types.h index c167239ec..6ca9b9ea1 100644 --- a/gtsam/base/types.h +++ b/gtsam/base/types.h @@ -103,6 +103,17 @@ namespace gtsam { operator T() const { return value; } }; + /** An assertion that throws an exception if NDEBUG is not defined and + * evaluates to an empty statement otherwise. */ +#ifdef NDEBUG +#define assert_throw(CONDITION, EXCEPTION) ((void)0) +#else +#define assert_throw(CONDITION, EXCEPTION) \ + if(!(CONDITION)) { \ + throw (EXCEPTION); \ + } +#endif + } #ifdef _MSC_VER