| ... | ... |
@@ -82,49 +82,55 @@ |
| 82 | 82 |
#endif |
| 83 | 83 |
|
| 84 | 84 |
|
| 85 | 85 |
#if defined LEMON_ASSERT_LOG |
| 86 | 86 |
# undef LEMON_ASSERT_HANDLER |
| 87 | 87 |
# define LEMON_ASSERT_HANDLER ::lemon::assert_fail_log |
| 88 | 88 |
#elif defined LEMON_ASSERT_ABORT |
| 89 | 89 |
# undef LEMON_ASSERT_HANDLER |
| 90 | 90 |
# define LEMON_ASSERT_HANDLER ::lemon::assert_fail_abort |
| 91 | 91 |
#elif defined LEMON_ASSERT_CUSTOM |
| 92 | 92 |
# undef LEMON_ASSERT_HANDLER |
| 93 | 93 |
# ifndef LEMON_CUSTOM_ASSERT_HANDLER |
| 94 | 94 |
# error "LEMON_CUSTOM_ASSERT_HANDLER is not set" |
| 95 | 95 |
# endif |
| 96 | 96 |
# define LEMON_ASSERT_HANDLER LEMON_CUSTOM_ASSERT_HANDLER |
| 97 | 97 |
#elif defined LEMON_DISABLE_ASSERTS |
| 98 | 98 |
# undef LEMON_ASSERT_HANDLER |
| 99 | 99 |
#elif defined NDEBUG |
| 100 | 100 |
# undef LEMON_ASSERT_HANDLER |
| 101 | 101 |
#else |
| 102 | 102 |
# define LEMON_ASSERT_HANDLER ::lemon::assert_fail_abort |
| 103 | 103 |
#endif |
| 104 | 104 |
|
| 105 | 105 |
#ifndef LEMON_FUNCTION_NAME |
| 106 |
# |
|
| 106 |
# if defined __GNUC__ |
|
| 107 |
# define LEMON_FUNCTION_NAME (__PRETTY_FUNCTION__) |
|
| 108 |
# elif defined _MSC_VER |
|
| 109 |
# define LEMON_FUNCTION_NAME (__FUNCSIG__) |
|
| 110 |
# else |
|
| 111 |
# define LEMON_FUNCTION_NAME (__func__) |
|
| 112 |
# endif |
|
| 107 | 113 |
#endif |
| 108 | 114 |
|
| 109 | 115 |
#ifdef DOXYGEN |
| 110 | 116 |
|
| 111 | 117 |
/// \ingroup exceptions |
| 112 | 118 |
/// |
| 113 | 119 |
/// \brief Macro for assertion with customizable message |
| 114 | 120 |
/// |
| 115 | 121 |
/// Macro for assertion with customizable message. \param exp An |
| 116 | 122 |
/// expression that must be convertible to \c bool. If it is \c |
| 117 | 123 |
/// false, then an assertion is raised. The concrete behaviour depends |
| 118 | 124 |
/// on the settings of the assertion system. \param msg A <tt>const |
| 119 | 125 |
/// char*</tt> parameter, which can be used to provide information |
| 120 | 126 |
/// about the circumstances of the failed assertion. |
| 121 | 127 |
/// |
| 122 | 128 |
/// The assertions are enabled in the default behaviour. |
| 123 | 129 |
/// You can disable them with the following code: |
| 124 | 130 |
/// \code |
| 125 | 131 |
/// #define LEMON_DISABLE_ASSERTS |
| 126 | 132 |
/// \endcode |
| 127 | 133 |
/// or with compilation parameters: |
| 128 | 134 |
/// \code |
| 129 | 135 |
/// g++ -DLEMON_DISABLE_ASSERTS |
| 130 | 136 |
/// make CXXFLAGS='-DLEMON_DISABLE_ASSERTS' |
0 comments (0 inline)