Miles Bader skrev:
Thorsten Ottosen
writes: See
http://www.boost.org/libs/ptr_container/doc/reference.html#disabling-the-use...
Ok, I just checked the preprocessed output, and exceptions are _not_ "disabled", but the boost code seems to contains tons of assertions regardless of what mode (exceptions or no_exceptions) is used.
Hmmm I didn't explicitly define any macros, but what the compiled code contains seems to be asserts. Ok, you need to turn assertions off in release mode, perhaps by using -DNDEBUG=1
Well... generally the whole concept of a special no-checking-at-all "release mode" is a bit alien here.
I looked at the code and it seems like the basic problem is that the boost::ptr_sequence_adapter class (at least) is somewhat over-enthusiastic in it's use of assertions:
Just about any boost library has the implicit assumption that assertions are compiled away *if the optimal efficiency/smallest code is to be gained*. PtrContainer additionally throws a few exceptions, but these can be disabled too. Anyway, to justify why assertions should be disabled in release mode, I recommed: http://www.artima.com/cppsource/deepspace.html In particular, read the section on "The Principle of Removability". cheers -Thorsten