Thorsten Ottosen
Just about any boost library has the implicit assumption that assertions are compiled away *if the optimal efficiency/smallest code is to be gained*. ... 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".
Well I certainly agree with "The Principle of Removability" (who wouldn't?). However, there seems to be an implicit assumption that software is always in one of two states: "debugging/development" (where speed is not that important, and extra careful checking is needed) and "release" (where speed is very important, and extra careful checking would be wasted or even harmful). I find that for much of the software I write, that isn't an accurate model -- I need speed, but I don't want to forgo debuggability/checking in cases where the speed hit is not excessive. Because of this, I think it's useful to have more than just "all on" or "all off", because the cost of various debugging code varies a lot... Thanks, -Miles -- We have met the enemy, and he is us. -- Pogo