我一直认为让 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
,因为它是 const .
尝试避免const
返回的当地人是一个好主意,还是有更好的方法来处理这个问题?