In my opinion, assertions indicate enfrorcement of pre/post conditions, that are separate from the algorithmic logic of a function. What happens from the result of the assertion, an exception or an abort is a separate issue.
Consider (if assert takes a boost::function0<void>): assert (!harddrive.isFragmented (), boost::bind (&HardDrive::defrag, &harddrive)); In this case, it there is a simple remedy to the failed pre-condition. The alternative is: assert (!harddrive.isFragmented (), std::abort); _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost