如何通过自动返回类型返回引用

How is it possible to return a reference via auto return type?

本文关键字:返回 引用 返回类型 何通过      更新时间:2023-10-16

我有一个函数auto function(...)。是否可以从中返回引用?

我认为使用引用包装器(std::ref?)是正确的做法,但我并没有真正了解它的工作原理和使用方法,所以请写一个简短的解释。

我知道返回参考资料的危险,但就我而言,如果可以的话,这会让事情变得更容易。

当然,使用auto&,就像在for循环中一样,如果您太忙而无法显式写出类型,并且不想获取值副本:

auto& nearly_ub() {
    static int foo;
    return foo;
}

但要注意悬挂引用的可能性。

似乎可以将decltype(auto)设置为返回类型。

decltype(auto) nearly_ub() {
    static int foo;
    return foo;
}

请参阅https://stackoverflow.com/a/69233089/1414763