Информация об изменениях

Сообщение Re[2]: Конкатенация std::string_view ?! от 30.05.2023 12:53

Изменено 30.05.2023 12:54 Videoman

Re[2]: Конкатенация std::string_view ?!
Здравствуйте, Chorkov, Вы писали:

C>Догадка:

C>1) string_view не поддерживает никакие операции с аллокацией памяти.

Это понятно. Из-за этого же разрешено только явное преобразование к стоке.

C>2) Если такое сложение разрешить, велика вероятность сделать ошибку типа:

C>
C>std::string_view result = "foo"s + "bar"sv;  //< store reference on temporary string
C>

Это тоже понятно, также как и операция сложения двух нативных строк, тут ничего нового. А почему нельзя к строке прибавлять string_view, а нативную можно? Строка же поддерживает переаллокацию?
Re[2]: Конкатенация std::string_view ?!
Здравствуйте, Chorkov, Вы писали:

C>Догадка:

C>1) string_view не поддерживает никакие операции с аллокацией памяти.

Это понятно. Из-за этого же разрешено только явное преобразование к стоке.

C>2) Если такое сложение разрешить, велика вероятность сделать ошибку типа:

C>
C>std::string_view result = "foo"s + "bar"sv;  //< store reference on temporary string
C>

Это тоже понятно, также как и операция сложения двух нативных строк, тут ничего нового. А почему нельзя к строке прибавлять string_view, а нативную можно, строка же поддерживает переаллокацию?