首页 > 解决方案 > const ref 绑定到右值的内部资源

问题描述

考虑代码:

const Resource& r = ResourceContainer("foo").myResource;

标准对 myResource 的生命周期有何规定?

类似,但不确定这是否等效:现在想象它是通过operator const Resource&(). 这有什么区别吗?

const Resource& r = ResourceContainer("foo");

标签: c++c++11temporaryconst-reference

解决方案


https://en.cppreference.com/w/cpp/language/reference_initialization#Lifetime_of_a_temporary说:

每当引用绑定到临时对象或其子对象时,临时对象的生命周期就会延长以匹配引用的生命周期,但以下情况除外:

“子对象”看起来像你的情况。


推荐阅读