References, pointers, and iterators referring to the elements of a basic_string sequence may be invalidated
by the following uses of that {{basic_string object:
- As an argument to non-member functions
swap(),operator>>(), andgetline(). - As an argument to
basic_string::swap(). - Calling
data()andc_str()member functions. - Calling non-const member functions, except
operator[](),at(),begin(),rbegin(),end(), andrend(). - Subsequent to any of the above uses except the forms of
insert()anderase()which return iterators, the first call to non-const member functionsoperator[](),at(),begin(),rbegin(),end(), orrend().