From: Kevin S. Van Horn (Kevin.VanHorn_at_[hidden])
Date: 2002-11-15 12:00:09
Peter Dimov write:
> > 1. The proper C++ header file is <cassert>, not <assert.h>.
> True. The "improper" header has the advantage that it's universally
> available, though, and there is no other difference between the two,
I don't want to make a mountain out of a molehill, but I believe there is
a difference between the two: <cassert> is part of the C++ Standard, and
<assert.h> is not. Strictly speaking, use of <assert.h> is not
standard-conforming, and Boost code is supposed to be standard-conforming.
> Throwing an exception from BOOST_ASSERT is undesired behavior. I don't
> want it as a standard option.
Except that, in the case I pointed out, it sometimes is desired behavior
and the Right Thing(tm) to do. One aborts an entire subcomputation /
transaction rather than aborting the entire program. I expect this to be
the norm, not the exception (pardon the pun), for enterprise information
systems. Because it is a common, important case, it is desirable that we
provide a standard solution for this case. If you like, the documentation
can make it clear exactly under which circumstances use of the
exception-throwing behavior is desirable, and when it is not.