```
std::string test("this is a test string");
test[0] = 'b';

```

like the code above, part of the string has been changed, will the compiler generate a new string or do the modification on the old one?