gpt4 book ai didi

c++ - 允许成员函数使用左值和右值引用限定符的目的是什么?

转载 作者:行者123 更新时间:2023-11-30 04:07:03 28 4
gpt4 key购买 nike

我主要是想了解此功能启用或促进的用途。我了解哪些调用在以下位置:

struct Foo
{
void bar() & {std::cout << "l-value"; }
void bar() && {std::cout << "r-value"; }
};

Foo f;
f.bar(); // calls l-value version
Foo().bar(); // call r-value version

但是这种区别的实际用途是什么?

最佳答案

右值方法可以安全地从调用者移出或以其他方式使调用者无效,因为之后将无法访问它(当然,它不能返回或存储引用)。因此,在某些操作的破坏性实现更有效的情况下,您可以仅在可以安全使用的地方为右值提供它。转换操作符也考虑从中移动。

关于c++ - 允许成员函数使用左值和右值引用限定符的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22658372/

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