C 编程语言允许常量引用来延长临时对象的生命周期。这种行为一直是很多争论的主题,有人认为它可以提高代码设计的性能和灵活性。
这种语言功能的起源可以追溯到 1993 年,当时它被提议作为以下问题的解决方案:绑定到引用时临时变量的处理不一致。在没有返回值优化 (RVO) 的情况下,禁止将临时变量绑定到引用将会造成性能损失。
通过允许常量引用来延长临时变量的生命周期,委员会旨在消除这种不一致,同时保留潜在的性能优势。这种设计选择使成员函数能够在返回值或对现有内部值的 const 引用之间无缝切换,而无需修改客户端代码。
例如,考虑一个可以返回行向量或列的矩阵类向量。为了优化性能,可以返回一种或另一种类型的向量作为参考,具体取决于实现的内部组织(行优先或列优先存储)。这种灵活性允许库编写者将来修改实现,而不会影响客户端代码,否则需要显式处理返回值的类型。
因此,委员会决定在以下情况下延长临时变量的生命周期:绑定到 const 引用有双重目的:它确保引用绑定行为的一致性,并实现优化和适应性强的代码设计。
以上是为什么将常量引用绑定到临时对象会延长其生命周期?的详细内容。更多信息请关注PHP中文网其他相关文章!