Должен ли я всегда переходить к аргументам конструктора или установщика `sink`?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Должен ли я всегда переходить к аргументам конструктора или установщика `sink`?

Сообщение Гость »


struct TestConstRef { станд::строка ул; Test(const std::string& mStr): str{mStr} { } }; структура TestMove { станд::строка ул; Test(std::string mStr) : str{std::move(mStr)} { } }; После просмотра GoingNative 2013 я понял, что аргументы sink всегда следует передавать по значению и перемещать с помощью std::move. Является ли TestMove::ctor правильным способом применения этой идиомы? Есть ли случай, когда TestConstRef::ctor лучше/эффективнее?

А как насчет тривиальных сеттеров? Должен ли я использовать следующую идиому или передать const std::string&?
struct TestSetter { станд::строка ул; void setStr(std::string mStr) {str = std::move(str); } };
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»