【发布时间】:2016-12-04 05:50:48
【问题描述】:
我有一个函数auto function(...)。是否可以从中返回引用?
我认为使用引用包装器 (std::ref?) 是正确的做法,但我并没有真正了解它的工作原理和使用方式,所以请善待写一个简短的解释。
我知道返回引用的危险,但在我的情况下,如果可以的话,它会让事情变得更容易。
【问题讨论】:
-
你想返回什么引用?请注意返回对函数本地对象的引用非常非常糟糕。
-
您是在问使用
auto时是否可以通过引用返回?如果是这样,那么是的,你可以。auto可以与说明符和声明符一起使用。 -
@NathanOliver: OTOH,
operator[ ]通常会返回一个引用。 -
@MSalters 不是函数本地对象。
-
@NathanOliver:当然,但以
std::vector::operator[ ]或std::map为例说明为什么它通常是安全的。
标签: c++ auto return-by-reference