Должен ли я всегда переходить к аргументам конструктора или установщика `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); } };

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