c++ - 将计算结果保存到常量引用中

标签 c++

我最近偶然发现了一 block ,我无法说出它有什么特别的意义;考虑一下:

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 引用中有什么意义,我错过了什么?

最佳答案

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

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

这将是自杀式的(绑定(bind)到临时对象的引用!)除了 C++ 中有一条特殊规则规定在这种情况下,只要引用存在,临时对象就会一直保持事件状态,因此不会发生任何不良情况。

不过也没什么特别好的。

关于c++ - 将计算结果保存到常量引用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47034250/

相关文章:

c++ chrono给出负纪元时间

c++ - 在/usr/local/lib 中为 C++ 安装 xmlrpc

c++ - 使用 std::bind 了解编译器错误

c++ - 使用 wmemset 初始化 wchar_t 数组。编码重要吗?

c++ - std::enable_shared_from_this::shared_from_this 如何工作

c++ - 通过串口发送字符串

c++ - c++命名空间中模板类友元函数定义问题

c++ - 在C++中随机生成最多n的唯一数字

c++ - 如何巧妙地将一些元素从 std::set 移动到另一个容器?

c++ - "Member function must be called or its address taken in function"C++错误