#include <assert.h>
assert( expression );Syntax - assert Macro, _assert, _wassert | Microsoft Learn
NDEBUGマクロが定義されていると、コンパイル時にアサーションは無効になります。このマクロは、コマンドライン オプションで/DNDEBUGを指定することでも定義できます。<assert.h>をインクルードする前に#define NDEBUG ディレクティブを使用することでも、アサーションを無効にできます。Remarks - assert Macro, _assert, _wassert | Microsoft Learn
デバッガがアタッチされていないときにアサーションに違反すると、「ブレークポイントが発生しました。 (STATUS_BREAKPOINT)」として、コード -2147483645 (0x80000003)で終了します。Cause - Bug Check 0x8E KERNEL_MODE_EXCEPTION_NOT_HANDLED - Windows drivers | Microsoft Learn
Visual C++では、次のようなダイアログが表示されます。
--------------------------- Microsoft Visual C++ Runtime Library --------------------------- Assertion failed! Program: *** File: ***.cpp Line: ** Expression: expression For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts (Press Retry to debug the application - JIT must be enabled) --------------------------- 中止(A) 再試行(R) 無視(I) ---------------------------