アサーション (表明)

#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)
---------------------------

参考

参考書

Microsoft Learnから検索