--- /dev/null
+
+/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
+**] All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* Distributable under the terms and conditions of the 2-clause BSD license;
+* see the file COPYING for a complete text of the license.
+*
+**************************************************************************/
+
+#ifndef _MOOF_DEBUG_HH_
+#define _MOOF_DEBUG_HH_
+
+/**
+ * \file debug.hh
+ * Debugging facilities.
+ */
+
+#include <cstdlib> // exit
+
+#include <moof/log.hh>
+
+
+#undef ASSERT
+#if NDEBUG
+#define ASSERT(X)
+#else
+/**
+ * Macro which tests an assertion and issues a log_error() and exits if the
+ * assertion is false.
+ * \param X test to perform.
+ */
+#define ASSERT(X) if (!(X)) moof::log_error \
+ << "false assertion at " << __FILE__ << ":" << __LINE__ << ", " \
+ << #X, exit(1)
+#endif
+
+
+#endif // _MOOF_DEBUG_HH_
+