通过常量引用延长右值生命周期
在 C 中,常量引用不仅充当不可变别名,还可以延长临时变量的生命周期。为什么 C 委员会决定实现此行为?
此功能的一个基本原理是隐藏类和函数的实现细节。考虑一个可以返回行向量或列向量的矩阵类。为了优化性能,类可以选择根据其行优先或列优先组织返回对内部值的引用。通过要求客户端接受返回值作为 const 引用,该类可以在引用和值之间无缝切换,从而使客户端免受实现细节的影响。
从历史上看,延长右值生命周期的决定源于解决方法中不一致的问题。参考文献在 1993 年处理了临时数据。当时,RVO(返回值优化)还不存在。禁止临时变量与引用的绑定会严重影响性能。因此,委员会选择了一种解决方案,允许绑定,同时延长临时变量的使用寿命,以确保它们在参考使用期间的可用性。
这一基本原理记录在 1993 年提交给 C 标准委员会的提案 N0345.pdf 中通过延长右值的生命周期,const 引用有助于更好的抽象、保持代码灵活性并优化从函数返回对象时的性能。
以上是为什么常量引用会延长 C 中临时变量的生命周期?的详细内容。更多信息请关注PHP中文网其他相关文章!