struct TestConstRef {
std::string str;
Test(const std::string& mStr) : str{mStr} { }
};
struct TestMove {
std::string str;
Test(std::string mStr) : str{std::move(mStr)} { }
};
看了 GoingNative 2013 之后,我明白了sink参数应该总是按值传递并用std::move
. TestMove::ctor
应用这个成语的正确方法是什么?有没有TestConstRef::ctor
更好/更有效的情况?
琐碎的二传手呢?我应该使用以下成语还是通过 a const std::string&
?
struct TestSetter {
std::string str;
void setStr(std::string mStr) { str = std::move(str); }
};