gpt4 book ai didi

c++ - 避免返回的 const locals?

转载 作者:IT老高 更新时间:2023-10-28 21:47:50 26 4
gpt4 key购买 nike

我一直认为 const locals 是 const 是件好事

void f() {
const resource_ptr p = get();
// ...
}

然而,上周我看到学生在做 C++ 练习并且想知道返回的 const 指针

resource_ptr f() {
const resource_ptr p = get();
// ...
return p;
}

在这里,如果编译器无法应用 NRVO(想象在某些情况下这是真的,可能会返回两个指针之一,具体取决于条件),突然 const 变成了悲观,因为编译器不能从 p move ,因为它是 const。

在返回的本地人上尝试避免 const 是个好主意,还是有更好的方法来处理这个问题?

最佳答案

Is it a good idea to try and avoid const on returned locals, or is there a better way to deal with this?

是的。事实上,如果 resource_ptr 是一个 move-only 类型,如果你试图返回一个 const 类型,你会得到一个编译时错误。

这是“经过验证的”C++98/03 建议不再适用于 C++11 及更高版本的示例。

关于c++ - 避免返回的 const locals?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191875/

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