This may be a bug in your particular installed version of the compiler. Here's what GCC does for your code on my system (Linux x86-64):
$ g++-4.1.2 test.cpp -o test
$ ./test
exception: array::_M_at
$ g++-4.3.5 test.cpp -o test
$ ./test
exception: array::at
$ g++-4.4.4 test.cpp -o test
$ ./test
exception: array::at
$ g++-4.5.0 test.cpp -o test
$ ./test
exception: array::at
, , , , , , GCC 4.1.2, . - ? Valgrind .