diff options
Diffstat (limited to 'meowpp/debug/assert.h')
-rw-r--r-- | meowpp/debug/assert.h | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/meowpp/debug/assert.h b/meowpp/debug/assert.h deleted file mode 100644 index 0143e86..0000000 --- a/meowpp/debug/assert.h +++ /dev/null @@ -1,76 +0,0 @@ -/*! - * @file assert.h - * @brief Contains assert macro for meowpp's debugging tools. - * - * You can use - * @code{.cpp} - * #define MEOWPP_NODEBUG - * @endcode - * to remove all the debugging code. - * - * @author cathook - */ - -#ifndef __MEOWPP_ASSERT_H__ -#define __MEOWPP_ASSERT_H__ - -#include <cstdio> -#include <cstdlib> - - -namespace meow { - - -/*! - * @def Assert - * @brief A macro for assert whether a expression is failed or not. - * @param expr The expression to be tested. - * @param ... Error information to be printed to stderr when the expr is failed. - * - * When expression is failed, it will call `fprintf(stderr, ...)` to print out - * the message follows by calling `abort()` to halt the program. - * - * @note You can use - * @code{.cpp} - * #define MEOWPP_TESTING - * @endcode - * to tell this macro calls `test::abort()` instead of normal `abort()` - * function. - */ - - -#ifndef MEOWPP_NODEBUG - -#define MEOWPP_STRINGIFY(x) #x -#define MEOWPP_TOSTRING(x) MEOWPP_STRINGIFY(x) - -#ifndef MEOWPP_DEBUG_ASSERT_TESTING - -#define Assert(expr,...) \ - while (((expr) || \ - (fprintf(stderr, "Assertion error at " \ - __FILE__ ":" MEOWPP_TOSTRING(__LINE__) \ - " >>> " __VA_ARGS__), \ - abort(), false) + fprintf(stderr, "\n")) && false) - -#else // MEOWPP_DEBUG_ASSERT_TESTING - -#define Assert(expr,...) \ - while (((expr) || \ - (fprintf(stderr, "Assertion error at " \ - __FILE__ ":" MEOWPP_TOSTRING(__LINE__) \ - " >>> " __VA_ARGS__), \ - test::abort(), false) + fprintf(stderr, "\n")) && false) - -#endif // MEOWPP_DEBUG_ASSERT_TESTING - -#else // MEOWPP_NODEBUG - -#define Assert(expr,...) \ - while (false) - -#endif // MEOWPP_NODEBUG - -} // meow - -#endif // __MEOWPP_ASSERT_H__ |