Size: a a a

2020 August 05

АК

Александр Караев... in pro.cxx
Гласси Hudobin
бесполезно же
странно, большинство крупных проектов с StringRef и прочими самодельными string_view не согласятся
источник

NI

Nikita Ivanov in pro.cxx
оптионал норм
источник

ГH

Гласси Hudobin in pro.cxx
Nikita Ivanov
оптионал норм
но expected еще более норм
источник

ПК

Побитый Кирпич... in pro.cxx
Александр Караев
string_view может считаться ошибкой только в том случае, если их использует человек, не знающий ничего про лайфтаймы
Дак он тогда и const std::string& должен считать ошибкой)
источник

ПК

Побитый Кирпич... in pro.cxx
Гласси Hudobin
бесполезно же
почти const std::string&, но без аллокаций и в constexpr. Почему бесполезно то?
источник

O

Ofee in pro.cxx
Гласси Hudobin
но expected еще более норм
Они решают несколько разные задачи
источник

ГH

Гласси Hudobin in pro.cxx
Побитый Кирпич
почти const std::string&, но без аллокаций и в constexpr. Почему бесполезно то?
Бесполезно следить за лайфтаймом. Там неявное преобразование из const std::string & во временный std::string иногда случается.
источник

m

magras in pro.cxx
Гласси Hudobin
Бесполезно следить за лайфтаймом. Там неявное преобразование из const std::string & во временный std::string иногда случается.
Это про
T add(const T& a, const T& b) { return a + b; }

?
источник

m

magras in pro.cxx
А, там еще нужен оператор сложения для string_view, который возвращает string, чтобы это взорвалось.
string opaerator+(string_view a, string_view b) {
 return string(a) + b;
}
источник

m

magras in pro.cxx
Гласси Hudobin
Бесполезно следить за лайфтаймом. Там неявное преобразование из const std::string & во временный std::string иногда случается.
В общем хочу пример, где это происходит.
источник

ГH

Гласси Hudobin in pro.cxx
magras
Это про
T add(const T& a, const T& b) { return a + b; }

?
Нет, я про
std::string_view myfunc(const std::string & str)
{ std::string_view ret = str; return ret; }
источник

ГH

Гласси Hudobin in pro.cxx
Гласси Hudobin
Нет, я про
std::string_view myfunc(const std::string & str)
{ std::string_view ret = str; return ret; }
Что не так в этом коде?
источник

АК

Александр Караев... in pro.cxx
Гласси Hudobin
Нет, я про
std::string_view myfunc(const std::string & str)
{ std::string_view ret = str; return ret; }
ну то есть:
> string_view может считаться ошибкой только в том случае, если их использует человек, не знающий ничего про лайфтаймы
источник

АК

Александр Караев... in pro.cxx
Гласси Hudobin
Что не так в этом коде?
да всё так, собственно
время жизни результата совпадает со временем жизни аргумента
источник

ГH

Гласси Hudobin in pro.cxx
Александр Караев
да всё так, собственно
время жизни результата совпадает со временем жизни аргумента
Нет, там неявное преобразование из const std::string & к std::string.
источник

АК

Александр Караев... in pro.cxx
Гласси Hudobin
Нет, там неявное преобразование из const std::string & к std::string.
где?
источник

ГH

Гласси Hudobin in pro.cxx
и string_view указывает на несуществующий объект
источник

m

magras in pro.cxx
Гласси Hudobin
Нет, там неявное преобразование из const std::string & к std::string.
Это вполне явное преобразование.
источник

АК

Александр Караев... in pro.cxx
Гласси Hudobin
Нет, там неявное преобразование из const std::string & к std::string.
ret содержит вью на ту же область памяти, на которую ссылается const std::string&
источник

ГH

Гласси Hudobin in pro.cxx
Александр Караев
ret содержит вью на ту же область памяти, на которую ссылается const std::string&
Там же константности нет.
источник