2017-10-31 6 views
3

に保存しました。最近、私はそれがどんな特別な意味を持っているかを言えませんでした。計算結果をconstリファレンス

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参照に計算結果を格納する際に任意の意味を見ることができませんか?

+0

https://stackoverflow.com/q/2784262/1460794 – wally

答えて

6

本当に何もありません。

この場合、C++は結果を含む一時オブジェクトを作成し、このオブジェクトにバインドされた参照を作成します。

これは、C++に特別な規則があるという点を除いて、この非常に大切なことが何も起こらない限り、一時的なオブジェクトが生きているということを除いて、自殺しているでしょう。

しかし、どちらも特に良いです。

+0

式の結果が派生型の場合は、時には良いことがあります。値を指定すると、そのような結果は基底にスライスされますが、参照は派生型のままです。時には 'auto'が発明される前に有用だった。 –