/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * * 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_ #include #include /** * \file debug.hh * Debugging facilities. */ #define STRINGIZE(X) #X #define QUOTE_MACRO(X) STRINGIZE(X) #define FILELINE __FILE__":"QUOTE_MACRO(__LINE__) #undef ASSERT #ifdef 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 " << FILELINE << ", " << #X, std::terminate() #endif #endif // _MOOF_DEBUG_HH_