我刚开始使用 c++11 r-values。我阅读了一些教程,但我还没有找到答案。
设置类变量的最佳方式(最有效的方式)是什么?下面的代码是否正确?(假设 std::string 已经定义了移动构造函数和赋值运算符)。
class StringWrapper
{
private:
std::string str_;
public:
StringWrapper() : str_("") {}
void setString1(std::string&& str) {
str_ = std::move(str);
}
void setString2(const std::string& str) {
str_ = std::move(str);
}
// other possibility?
};
int main() {
std::string myText("text");
StringWrapper x1, x2;
x1.setString?("text"); // I guess here should be setString1
x2.setString?(myText); // I guess here should be setString2
}
我知道编译器可以优化我的代码和/或我可以使用重载函数。我只想知道什么是最好的方法。