1. ホーム
  2. c++

[解決済み] assert()の呼び出しを完全に無効にするにはどうすればよいですか?

2023-06-10 18:22:06

質問

私のコードには assert(condition) . デバッグバージョンでは、私は g++ -g を使い、アサーションを発動させています。 予期せぬことに、同じアサーションがリリース版でも発動しています。 -g オプションなしでコンパイルされたものです。

コンパイル時にアサーションを完全に無効にするにはどうしたらよいでしょうか。明示的に NDEBUG を明示的に定義すべきでしょうか?

どのように解決するのですか?

あなたは #define NDEBUG (またはフラグ -DNDEBUG と共に g++ ) これは、assert ヘッダーファイルがインクルードされる前に定義されている限り、assert を無効化します。