From: David Abrahams (dave_at_[hidden])
Date: 2007-08-26 10:14:23
on Sat Aug 25 2007, Howard Hinnant <howard.hinnant-AT-gmail.com> wrote:
> The main philosophical difference between us is that I want to be able
> to choose "check", and be assured that I'm actually getting checking.
> And then I want to be able to choose "don't check". And then not have
> to pay for it. I want both choices.
I think everyone honors your desire to have these choices. I'm just
not sure it's the /standard's/ job to give them to you.
1. Aside from vector<T>::at (which IMO was a mistake), there is no
precedent for this in the standard. We don't know that such a
choice will serve people well.
2. As Peter already pointed out, if we mandate a check in the
standard, the result of a failed check must be an exception (or the
behavior of a failed assert, which I think is to abort). Neither
of these behaviors is -- in and of itself -- useful in debugging
(at best, you rely on your vendor to make it useful).
3. I'll say again: turning a logic error into an exception is a bad
idea (http://tinyurl.com/2ph58t) and we have no programming model
for handling it.
-- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk