assert_utility.h 1013 B

12345678910111213141516171819202122232425262728
  1. #include <boost/predef.h>
  2. #include <cassert>
  3. #include "third_party/debugbreak.h"
  4. #undef assert
  5. #ifdef NDEBUG
  6. #define assert(_Expression) ((void)0)
  7. #else /* !defined (NDEBUG) */
  8. #ifdef BOOST_OS_WINDOWS_AVAILABLE
  9. #if defined(_UNICODE) || defined(UNICODE)
  10. #define assert(_Expression) \
  11. (void) \
  12. ((!!(_Expression)) || \
  13. (debug_break(),_wassert(_CRT_WIDE(#_Expression),_CRT_WIDE(__FILE__),__LINE__),0))
  14. #else /* not unicode */
  15. #define assert(_Expression) \
  16. (void) \
  17. ((!!(_Expression)) || \
  18. (debug_break(),_assert(#_Expression,__FILE__,__LINE__),0))
  19. #endif /* _UNICODE||UNICODE */
  20. #else /* BOOST_OS_WINDOWS_AVAILABLE */
  21. #define assert(_Expression) \
  22. (void) \
  23. ((!!(_Expression)) || \
  24. (debug_break(),__assert(#_Expression,__FILE__,__LINE__),0))
  25. #endif /* BOOST_OS_WINDOWS_AVAILABLE */
  26. #endif /* !defined (NDEBUG) */