
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