gpt4 book ai didi

c++ - 方法应该将 R 值引用作为输入有任何正当理由吗?

转载 作者:太空狗 更新时间:2023-10-29 23:25:20 25 4
gpt4 key购买 nike

如标题中所述,我想知道给定类方法是否有正当理由/示例,不包括移动构造函数移动赋值运算符,或者自由函数应将 R 值引用作为输入参数。

最佳答案

保留值时避免不必要的拷贝。我喜欢将此功能称为“接收器功能”。这在定义 setter 时经常发生。

class A
{
private:
std::string _s;

public:
void setS(const std::string& s) { _s = s; }
void setS(std::string&& s) { _s = std::move(s); }
};

int main()
{
A a;
std::string s{"some long string ......."};

a.setS(s); // copies and retains `s`
a.setS(std::move(s)); // moves and retains `s`
}

关于c++ - 方法应该将 R 值引用作为输入有任何正当理由吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40937506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com