#include <iostream>
using namespace std;
// #define NDEBUG // ← Noデバッグモード (リリース時など) にしておくと
#include <cassert> // assert() がすべて無視されます
int main() {
int n = 0; // としておくと
int m = 10;
assert(n != 0); // 期待通りアサーションに失敗します
cout << m / n << endl;
return 0;
}
「#define NDEBUG」はコンパイラの引数で代用できます。
g++ -DNDEBUG -Wall main.cpp
(-DVALUE で #define VALUE と同じ状況を実現できます)
いずれにせよ、assert() はリリース時には無視されてコンパイルされるため、例えばユーザからの標準入力を assert() するのは避けるべきです。静的なものに対してのみ使用しましょう。