/* ZAssert.hpp Author : Chris Ertel Purpose : Asserts for debugging and error checking purposes. Changelog 8/16/2010 - creation (crertel) 12/4/2011 - Updated to use libsst-os asserts (jcrussell) */ #pragma once #ifndef _ZASSERT_H #define _ZASSERT_H #include /*****************/ /* Assert Macros */ /*****************/ //ZASSERT_RUNTIME macro, which will raise an error with debug output if the condition is not true after logging the message #define ZASSERT_RUNTIME(_condition, _message) SST_OS_RuntimeAssert(_condition, _message) //ZASSERT_RUNTIME_FAIL macro, which will raise an error with debug output #define ZASSERT_RUNTIME_FAIL(_message) SST_OS_RuntimeError(_message) #if ZASSERT_ENABLE //ZASSERT macro, which will trigger a breakpoint if the condition is not met #define ZASSERT(_condition, _message) SST_OS_DebugAssert(_condition, _message) //ZASSERT_FAIL macro, which triggers a breakpoint #define ZASSERT_FAIL(_message) SST_OS_DebugError(_message) #else /* ZASSERT is disabled */ #define ZASSERT(_condition, _message) #define ZASSERT_FAIL(_message) #endif //ZASSERT_ENABLE #if ZASSERT_UTIL_ENABLE //ZASSERT_UTIL macro, which will trigger a breakpoint if the condition is not met //ZASSERT_UTIL is meant to be used within the ZUtil project for internal assertion debugging //ZASSERT should be used when the error condition can be caused by user actions #define ZASSERT_UTIL(_condition, _message) SST_OS_DebugAssert(_condition, _message) #else /* ZASSERT_UTIL is disabled */ #define ZASSERT_UTIL(_condition, _message) ((void)0) #endif //ZASSERT_UTIL_ENABLE #endif