将计算结果保存到const引用中

时间:2017-10-31 11:26:51

标签: c++

我最近偶然发现了一块我不知道它有什么特别的意义;考虑一下:

const FVector2D L0 = (Start.LeftPos * ScaleFactor - Offset) / Size * TargetSize;
const FVector2D R0 = (Start.RightPos * ScaleFactor - Offset) / Size * TargetSize;

const FVector2D& C0 = (L0 + R0) * 0.5f;

在将计算结果存储到const引用中时,我没有任何意义,我缺少什么?

1 个答案:

答案 0 :(得分:6)

你确实没有遗漏任何东西。

在这种情况下,C ++做的是创建一个带有结果的临时对象,然后创建一个绑定到该对象的引用。

这将是自杀(一个临时绑定的引用!),除了在C ++中有一个特殊的规则,声明在这种情况下临时对象将保持活动,只要引用没有坏事发生。 / p>

然而,没有什么特别好的。