assert() ?

Started by
2 comments, last by SiCrane 12 years, 6 months ago
do assert() function calls only work during debug builds or also in release builds?
Advertisement
Assuming you're referring to the C standard library assert() macro, assert() is activated when the preprocessor symbol NDEBUG isn't defined. Generally, release builds #define NDEBUG as a project property.
The assert() macro in the C library <assert.h> (or std::assert in the C++ standard library <cassert>) is documented as being a null operation if the symbol NDEBUG is defined. If your definition of "debug build" and "release build" do not and do define that symbol respectively, then yes, your assumption will hold true, otherwise no.

Stephen M. Webb
Professional Free Software Developer


(or std::assert in the C++ standard library <cassert>)

assert() is a macro and doesn't live in the std namespace.

This topic is closed to new replies.

Advertisement