Size: a a a

2021 June 30

Е

Евгений in dlang.ru
a = a[0..2] ~ "b" ~ a[3..$]
источник

Е

Евгений in dlang.ru
std::string - это обертка над иммутабельными данными
источник

И

Игорь in dlang.ru
если s - string то тут очевидная проблема
источник

МВ

Макс Воробьев... in dlang.ru
скорее std::string_view
источник

Е

Евгений in dlang.ru
Короче std::string это что-то вроде
https://run.dlang.io/is/VaPrt0
источник

Е

Евгений in dlang.ru
ЕМНИП в std::string как раз CoW стратегия применяется.
источник

EP

Egor Pugin in dlang.ru
над мутабельными
источник

МВ

Макс Воробьев... in dlang.ru
уже нет
источник

МВ

Макс Воробьев... in dlang.ru
CoW в QString остался
источник

МВ

Макс Воробьев... in dlang.ru
data = data[0..i] ~ v ~ data[i+1..$]; вот тут проблема, ибо каждый ~ создает новую строку
источник

МВ

Макс Воробьев... in dlang.ru
но, честно, даже хз, как часто это нужно
источник

МВ

Макс Воробьев... in dlang.ru
разве что в каких-то шаблонах
источник

И

Игорь in dlang.ru
я обычно делаю резерв для такого
источник

И

Игорь in dlang.ru
но не помню деталей
источник

МВ

Макс Воробьев... in dlang.ru
еп. std::string умеет в резерв
источник

Е

Евгений in dlang.ru
Так теперь оно стало еще хуже? При копировании строки, аллоцирует?
источник

КП

Константин Пунш... in dlang.ru
Всмысле
источник

Е

Евгений in dlang.ru
Какое говно.
https://godbolt.org/z/349vWr79d
источник

МВ

Макс Воробьев... in dlang.ru
1) есть sso. 2) есть move семантика
источник

МВ

Макс Воробьев... in dlang.ru
для сложения 2-х строк нужно создать новую строку
источник