#ifndef EXAMPLES_ASSERT_HPP #define EXAMPLES_ASSERT_HPP #ifndef NDEBUG #include #include #include #ifdef SOL2_CI struct pre_main { pre_main() { #ifdef _MSC_VER _set_abort_behavior(0, _WRITE_ABORT_MSG); #endif } } pm; #endif // Prevent lockup when doing Continuous Integration # define m_assert(condition, message) \ do { \ if (! (condition)) { \ std::cerr << "Assertion `" #condition "` failed in " << __FILE__ \ << " line " << __LINE__ << ": " << message << std::endl; \ std::terminate(); \ } \ } while (false) # define c_assert(condition) \ do { \ if (! (condition)) { \ std::cerr << "Assertion `" #condition "` failed in " << __FILE__ \ << " line " << __LINE__ << std::endl; \ std::terminate(); \ } \ } while (false) #else # define m_assert(condition, message) do { if (false) { (void)(condition); (void)sizeof(message); } } while (false) # define c_assert(condition) do { if (false) { (void)(condition); } } while (false) #endif #endif // EXAMPLES_ASSERT_HPP