Re: std::vector::operator[] throws exception
Deane Yang wrote:
> I was surprised to learn recently that code like
> std::vector<int> v(3);
> v[3] = 10;
> compiled with VC++ 8.0 and the STL library that comes with it
> throws an exception when run.
> Does this conform to the official specification of std::vector?
The code has undefined behavior, so officially, anything the
compiler does conforms to the official specification. Normally,
I would expect a core dump, or whatever Windows calls its
equivalent.
Note that VC++ has a number of options for handling exceptions.
From the little experience I have, the only one useful for
standards compliant code is /EHs. Is this what you are using?
> No exception is thrown if compiled with cygwin gcc.
I get a core dump with g++ under Linux or Solaris. At least
with debug options turned on.
--
James Kanze kanze.james@neuf.fr
Conseils en informatique orient?e objet/
Beratung in objektorientierter Datenverarbeitung
9 place S?mard, 78210 St.-Cyr-l'?cole, France +33 (0)1 30 23 00 34
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]