Если почитать учебник, можно узнать, что происходит с локальными переменными при выходе из функции.
А если вы пишете на С++ - учебник читать точно стоит.
avo463, это не тонкости, это основы.
Тонкости - это выяснение, происходит ли вообще копирование в вашей строчке инициализации этой строки.
Не помню, реализовано ли у std::string копирование только при изменении.
Учебник не посоветую, но вряд ли, например, сам Страуструп написал плохой учебник по своему языку.
Adamos, COW в std::string не заявлено в стандарте. Этого достаточно для уверенности что его нет. В прошлом COW для строк было реализовано в одном из STL. Результаты у этого шага были плачевные.
Евгений Шатунов, Не имеет значения, есть оно или нет. На результат работы этой функции наличие/отсутствие COW не повлияет, как и ненужный вызов clear. Просто необязательная работа, которую итак выполнит деструктор.
Про "плачевные результаты" вполне ожидаемо, если бы запретили преобразование к Си интерфейсу, то и проблем бы не было почти :)
maaGames, да, это все правда. Мой комментарий был исключительно к словам: Не помню, реализовано ли у std::string копирование только при изменении.
Т.е. даже не к вопросу или ответу. :)