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

Ben*_*ach 3 c++

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

const FVector2D L0 = (Start.LeftPos * ScaleFactor - Offset) / Size * TargetSize;
const FVector2D R0 = (Start.RightPos * ScaleFactor - Offset) / Size * TargetSize;
Run Code Online (Sandbox Code Playgroud)

和:

const FVector2D& C0 = (L0 + R0) * 0.5f;
Run Code Online (Sandbox Code Playgroud)

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

650*_*502 6

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

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

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

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