Size: a a a

2020 November 05

АР

Андрей Руссков... in pro.cxx
Aidar Fattakhov
да просто если лень смотреть в хедер пишешь везде const auto& и всё, а в голове держишь что foo его вероятно хранит
ну вернет геттер string по значению, у тебя const ссылка продлит лайфтайм, но ты потом не сможешь мувнуть то что получил из геттера
источник

AF

Aidar Fattakhov in pro.cxx
Андрей Руссков
ну вернет геттер string по значению, у тебя const ссылка продлит лайфтайм, но ты потом не сможешь мувнуть то что получил из геттера
ну мувнуть другой кейс
источник

AF

Aidar Fattakhov in pro.cxx
там вероятно можно тупо всегда копировать
источник

AF

Aidar Fattakhov in pro.cxx
есть еще третий кейс когда тебе нужно вымувать из контейнера но тут ты точно знаешь что так можно
источник

NP

Nikita Provotorov in pro.cxx
Anton Kviatkovskii
Народ, а есть ли какой то профит использовать в этом коде std::string_view вместо const std::string&  ?
struct Foo {
 std::string str;
 std::string_view get_str() const {
   return str;
 }
};
это можно свести к тому хорошему докладу про ссылки vs значения в параметрах функции
источник

NP

Nikita Provotorov in pro.cxx
типа если мы стрингу по ссылке получили, а потом мутируем инстанс Foo, тогда коду придется заного загрузить длину строки
источник

NP

Nikita Provotorov in pro.cxx
Nikita Provotorov
типа если мы стрингу по ссылке получили, а потом мутируем инстанс Foo, тогда коду придется заного загрузить длину строки
ну и необязательно вызывать именно мутатор Foo, достаточно просто дернуть глобальный метод
источник

MK

Mikhail Kornaukhov in pro.cxx
Nikita Provotorov
это можно свести к тому хорошему докладу про ссылки vs значения в параметрах функции
А что за доклад?
источник

NP

Nikita Provotorov in pro.cxx
источник

m

magras in pro.cxx
Anton Kviatkovskii
Народ, а есть ли какой то профит использовать в этом коде std::string_view вместо const std::string&  ?
struct Foo {
 std::string str;
 std::string_view get_str() const {
   return str;
 }
};
У них разная семантика:
foo.set_str("foo");
const auto& s = foo.get_str();
foo.set_str("bar");
assert(s == "???");
источник

m

magras in pro.cxx
А если точнее, на сколько я понимаю, в случае вью в этом коде UB, так как указатель возвращенный .data() инвалидируется.
источник

ПК

Побитый Кирпич... in pro.cxx
Anton Kviatkovskii
Народ, а есть ли какой то профит использовать в этом коде std::string_view вместо const std::string&  ?
struct Foo {
 std::string str;
 std::string_view get_str() const {
   return str;
 }
};
Это как возвращать const char*. Инвалидируется на каждый чих
источник

ДГ

Дмитрий Гусенков... in pro.cxx
Всем привет,можете подсказать источники для изучения С++,знаю всего лишь с ввода-вывода до массивов,двумерных массивов,функций
источник

D

Danya in pro.cxx
Дмитрий Гусенков
Всем привет,можете подсказать источники для изучения С++,знаю всего лишь с ввода-вывода до массивов,двумерных массивов,функций
источник

IC

Ideal Consumer in pro.cxx
Дмитрий Гусенков
Всем привет,можете подсказать источники для изучения С++,знаю всего лишь с ввода-вывода до массивов,двумерных массивов,функций
Майерс и Прата имхо лучшие книги и cppref сайт
источник

D

Danya in pro.cxx
Ideal Consumer
Майерс и Прата имхо лучшие книги и cppref сайт
Майерс не для начинающих
источник

t

ttldtor in pro.cxx
Майерс разве не отошёл от дел?
источник

D

Danya in pro.cxx
Отошёл, но какое это имеет значение?
источник

AF

Aidar Fattakhov in pro.cxx
Danya
Майерс не для начинающих
Ну хз
источник

AF

Aidar Fattakhov in pro.cxx
Вроде это сразу после учебника читать надо
источник