Is it legal to write to std::string?
In std::string there are only const members to fetch the data like c_str(). However I can get a reference to the first element of the string via operator[] and I can write to it. For example, if I have function: void toupper(char *first,char *last_plus_one); I can write directly to vector getting a pointer to the first element: vector<char> message // has "Some Message"; toupper(&message[0],&message[0]+message.size()); Can I do same thing with std::string? string message="Some Message"; toupper(&message[0],&message[0]+message.size()); Does the standard guarantee that the location of the memory