サンプルコード
#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() するのは避けるべきです。静的なものに対してのみ使用しましょう。
0
低レイヤーのプログラミングとOS開発が趣味。C言語を使っています。
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。


