返回不带副本 ctor 的引用

Returning reference without a copy ctor

本文关键字:引用 ctor 副本 返回      更新时间:2023-10-16

>通常,当从函数返回引用时,返回变量为值类型。

问题是否允许变量已经是引用变量?

请参阅下面的代码。我需要从迭代器shared_ptr中读出 myObject 作为参考,以避免复制 ctor(为 myObject 明确删除(

myObject& foo()
{
  for(auto iter = myMap.begin(); 
    iter != mymap.End();
    ++iter)
   {
    if(trueCondition)
    {
       //iter->second is
      // shared_ptr<myObject>
       myObject& toBeReturned= *(iter->second);
       return toBeReturned;
     }
  }
 throw std::exception("");
}

是的,您绝对可以返回对对象的引用,该引用将比引用存活。