... | ... |
@@ -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)