38#undef VRPN_CURRENT_FUNCTION
55#if defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || \
56 (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
58#define VRPN_CURRENT_FUNCTION __PRETTY_FUNCTION__
60#elif defined(__DMC__) && (__DMC__ >= 0x810)
62#define VRPN_CURRENT_FUNCTION __PRETTY_FUNCTION__
64#elif defined(__FUNCSIG__)
66#define VRPN_CURRENT_FUNCTION __FUNCSIG__
68#elif(defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || \
69 (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
71#define VRPN_CURRENT_FUNCTION __FUNCTION__
73#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
75#define VRPN_CURRENT_FUNCTION __FUNC__
77#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
79#define VRPN_CURRENT_FUNCTION __func__
81#elif defined(__cplusplus) && (__cplusplus >= 201103)
83#define VRPN_CURRENT_FUNCTION __func__
87#define VRPN_CURRENT_FUNCTION "(unknown)"
119#undef VRPN_ASSERT_MSG
121#if defined(VRPN_DISABLE_ASSERTS) || ( defined(VRPN_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) )
123#define VRPN_ASSERT(expr) ((void)0)
124#define VRPN_ASSERT_MSG(expr, msg) ((void)0)
126#elif defined(VRPN_ENABLE_ASSERT_HANDLER) || ( defined(VRPN_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) )
130#define VRPN_LIKELY(X) (X)
139 char const *file,
long line);
141 char const *function,
char const *file,
145#define VRPN_ASSERT(expr) (VRPN_LIKELY(!!(expr))? ((void)0): ::vrpn::assertion_failed(#expr, VRPN_CURRENT_FUNCTION, __FILE__, __LINE__))
146#define VRPN_ASSERT_MSG(expr, msg) (VRPN_LIKELY(!!(expr))? ((void)0): ::vrpn::assertion_failed_msg(#expr, msg, VRPN_CURRENT_FUNCTION, __FILE__, __LINE__))
152#define VRPN_ASSERT(expr) assert(expr)
153#define VRPN_ASSERT_MSG(expr, msg) assert((expr) && (msg))
162#undef VRPN_VERIFY_MSG
165#if defined(VRPN_DISABLE_ASSERTS) || ( !defined(VRPN_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
167# define VRPN_VERIFY(expr) ((void)(expr))
168# define VRPN_VERIFY_MSG(expr, msg) ((void)(expr))
172# define VRPN_VERIFY(expr) VRPN_ASSERT(expr)
173# define VRPN_VERIFY_MSG(expr, msg) VRPN_ASSERT_MSG(expr,msg)
VRPN_API void assertion_failed(char const *expr, char const *function, char const *file, long line)
VRPN_API void assertion_failed_msg(char const *expr, char const *msg, char const *function, char const *file, long line)