gpt4 book ai didi

c++ - 在 C++ 中使用临时对象时的返回值优化 (RVO)

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:19 25 4
gpt4 key购买 nike

假设我有两个函数 A 和 B。

其中函数 A 返回对象 X,函数 B 获取对象 X 作为参数。例如。

X A() {
X x;
return x;
}

void B(X x) {
write(x.data, x.size);
}

int main() { B(A()); }

这个对象 X 是只使用 RVO 作为 B 的临时构造一次还是我需要使用移动语义。

最佳答案

编译器只允许执行 RVO,但标准没有义务。因此,它可能会或可能不会优化您的代码,这完全取决于所使用的编译器及其参数。

另一个问题可能有助于了解相关细节:When should RVO kick-in?

关于c++ - 在 C++ 中使用临时对象时的返回值优化 (RVO),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672854/

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