Size: a a a

2020 April 24

DC

Denis Chernikov in pro.cxx
Alex
у любого класса должен быть мув конструктор, особенно, если он не менеджит никаких ресурсов
Совершенно нет 🙃
источник

DC

Denis Chernikov in pro.cxx
Как раз, если он ресурсов не менеджит, то смысла в move-конструкторе вообще нет (если я ничего не путаю)
источник

IS

Iskander Saitbatalov in pro.cxx
Alex
без терминатора это, простите. не строка
Но к сожалению, бывают нетерминированные const char * строки и std::string_view учитывает наличие таковых.
источник

IS

Iskander Saitbatalov in pro.cxx
И const char * тоже можно отправлять по ссылке.
источник

MS

Mishel Spartak in pro.cxx
Ну пожалуйста
источник

MS

Mishel Spartak in pro.cxx
Кто-нибудь
источник

v

vehlwn in pro.cxx
Alex
Как правильно принимать std::string_view? По значению или по const ссылке?
Хочешь хранить - храни std::string и принимай std::string по значению и мувай. Не хочешь хранить, но хочешь нул терминированную строку - принимай ссылку на конст стринг. Не хочешь терминированную - принимай стринг вью.
источник

IS

Iskander Saitbatalov in pro.cxx
Mishel Spartak
Кто-нибудь
Этот чат - не место для поисков мощных прогеров. Спрашивай свой вопрос про C++.
источник

MS

Mishel Spartak in pro.cxx
Мне стыдно сюда в общую
источник

DC

Denis Chernikov in pro.cxx
vehlwn
Хочешь хранить - храни std::string и принимай std::string по значению и мувай. Не хочешь хранить, но хочешь нул терминированную строку - принимай ссылку на конст стринг. Не хочешь терминированную - принимай стринг вью.
Если функция не меняет строку, почему бы просто не принять string_view?
источник

A

Alex in pro.cxx
vehlwn
Хочешь хранить - храни std::string и принимай std::string по значению и мувай. Не хочешь хранить, но хочешь нул терминированную строку - принимай ссылку на конст стринг. Не хочешь терминированную - принимай стринг вью.
не хочу хранить, хочу написать operator==. std::string не катит, мне уже библиотека дала string_view. Вопрос был просто как его оптимальнее принять.
источник

MS

Mishel Spartak in pro.cxx
Там могут быть тупые ошибки
источник

MS

Mishel Spartak in pro.cxx
Но я не хочу с ютубом
источник

DC

Denis Chernikov in pro.cxx
Mishel Spartak
Там могут быть тупые ошибки
источник

MS

Mishel Spartak in pro.cxx
Туда тож стыдно,ну кто-нибудь в лс
источник

MS

Mishel Spartak in pro.cxx
Пж
источник

IS

Iskander Saitbatalov in pro.cxx
Alex
не хочу хранить, хочу написать operator==. std::string не катит, мне уже библиотека дала string_view. Вопрос был просто как его оптимальнее принять.
По значению, ибо эта структура умещается в два машинных слова. Все структур меньше или равных трех лучше передавать по значению
источник

v

vehlwn in pro.cxx
Denis Chernikov
Если функция не меняет строку, почему бы просто не принять string_view?
Ударение на слове хранить, а не менять или не менять.
источник

A

Alex in pro.cxx
Denis Chernikov
Как раз, если он ресурсов не менеджит, то смысла в move-конструкторе вообще нет (если я ничего не путаю)
смысл в том, чтобы не создавать лишних временных объектов и физических копий данных, как я понимаю, по крайней мере. Не понимаю, зачем простому агрегату запрещать мув.
источник

v

vehlwn in pro.cxx
Alex
не хочу хранить, хочу написать operator==. std::string не катит, мне уже библиотека дала string_view. Вопрос был просто как его оптимальнее принять.
У стринг вьюхи нет операторов сравнений?
источник