коде std::string_view вместо const std::string& ?
struct Foo {
std::string str;
std::string_view get_str() const {
return str;
}
};
const auto str = foo.get_str(); Не будет лишнего копирования при таком коде
Ну это скорее выглядит как ошибка разработчика, который не вставил auto&
Скорее нет, т.к. строка во вьюху конвертируется, а обратно уже нет (без копий)
А что за доклад?
У них разная семантика: foo.set_str("foo"); const auto& s = foo.get_str(); foo.set_str("bar"); assert(s == "???");
Это как возвращать const char*. Инвалидируется на каждый чих
Мне вьюхи обычно симпатичней когда дело доходит до substr всяких, remove prefix/suffix etc. Прям вот иногда хочется даже явных str.view().substr(...) == ...
Обсуждают сегодня