Sind Behauptungen deaktiviert in "Release" Build?Sind Asserts in Release Build deaktiviert?
Wie optionale Flags wie -O0
, -O3
, -g
von g++
wirkt sich dies Verhalten ist?
Sind Behauptungen deaktiviert in "Release" Build?Sind Asserts in Release Build deaktiviert?
Wie optionale Flags wie -O0
, -O3
, -g
von g++
wirkt sich dies Verhalten ist?
assert()
im <cassert>
Kopf nur deaktiviert, wenn Sie das Makro NDEBUG
vor dem Einschließen der Header-Datei <cassert>
definieren. Siehe auch diese docs
mit gcc/g ++, der einfachste Weg, dies zu tun ist, um die NDEBUG
Makro in der Befehlszeile zu definieren, wenn der Compiler den Aufruf wie folgt:
g++ -DNDEBUG ... other args...
Argumente wie Optimierungsflags und ähnliche flags deaktiviert die assert nicht.
Aus der Manpage:
Wenn das Makro NDEBUG zur Zeit definiert wurde, ist
assert.h
wurde zuletzt enthalten, erzeugt das Makro assert() keinen Code
Haben Sie in Betracht gezogen, die Dokumentation zu konsultieren? –
http://stackoverflow.com/questions/5354314/how-to-completely-disable-assertion – RamblinRose