C 编程语言允许常量引用来延长临时对象的生命周期。这种行为一直是很多争论的主题,一些人认为它可以提高代码设计的性能和灵活性。
这种语言功能的起源可以追溯到 1993 年,当时它被提议作为以下问题的解决方案:绑定到引用时临时变量的处理不一致。在没有返回值优化 (RVO) 的情况下,禁止将临时变量绑定到引用将会造成性能损失。
通过允许常量引用来延长临时变量的生命周期,委员会旨在消除这种不一致,同时保留潜在的性能优势。这种设计选择使成员函数能够在返回值或对现有内部值的常量引用之间无缝切换,而无需修改客户端代码。
例如,考虑一个可以返回行向量或列的矩阵类向量。为了优化性能,可以返回一种或另一种类型的向量作为参考,具体取决于实现的内部组织(行优先或列优先存储)。这种灵活性允许库编写者将来修改实现而不影响客户端代码,否则需要显式处理返回值的类型。
因此,委员会决定在以下情况下延长临时变量的生命周期:绑定到 const 引用有双重目的:它确保引用绑定行为的一致性,并实现优化和适应性强的代码设计。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3