/** * @file osw_assert.h * * Copyright (c) 2003 - 2015 Nomura Kei * License : The MIT License <http://opensource.org/licenses/mit-license.php> */ #ifndef OSW_ASSERT_H #define OSW_ASSERT_H #ifdef NDEBUG /** * 指定された expression が偽の場合, プログラムを停止します. * <osw_assert.h> が最後にインクルードされた時点で NDEBUG マクロが定義されている場合, * osw_assert() マクロは何のコードも生成しません。 * * @param expression 診断する値 */ #define osw_assert(expression) ((void) expression) #else /** * 指定された expression が偽の場合, プログラムを停止します. * <osw_assert.h> が最後にインクルードされた時点で NDEBUG マクロが定義されている場合, * osw_assert() マクロは何のコードも生成しません。 * * @param expression 診断する値 */ #define osw_assert(expression) \ (expression) ? ((void) 0) : osw_assert_exec(__FILE__, __LINE__, #expression) #ifdef __cplusplus extern "C" { #endif void osw_assert_exec(const char* file, int line, const char* expression); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* NDEBUG */ #endif /* OSW_ASSERT_H */