C++ 右值引用构造函数对简单类型(Vector3、Matrix 等)的好处

标签 c++ reference rvalue

如果传递的对象没有复杂数据,使用右值引用有什么好处吗?例如,与仅使用引用相比,以下内容是否有任何优势?

class Vector3
{
public:
    float X, Y, Z;

    Vector3(const Vector2& vector2, float z)
        : X(vector2.X), Y(vector2.Y), Z(z)
    {

    }

    // Is this any better than the above?
    Vector3(Vector2&& vector2, float z)
        : X(std::move(vector2.X), Y(std::move(vector2.Y), Z(z)
    {

    }
};

最佳答案

我相信你举的例子不会有任何好处。对于 float 等基本数字类型,移动和复制实际上是相同的操作。

关于C++ 右值引用构造函数对简单类型(Vector3、Matrix 等)的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25598060/

相关文章:

c++ - 右值引用被视为左值?

c++ - 何时在 C++ 中使用引用作为参数

c++ - 二叉树(不是搜索)max函数

c++ - 为什么 timer_create 在 solaris 10 中为 SIGEV_THREAD 抛出错误?

c++ - 如何用pthread获取信号量的信息

azure - 在 Azure 中创建路由时,如何在 Terraform 中引用防火墙专用 IP 地址

variables - Dart-如何将迭代器值传递到Dart中的回调中?

c++ - 可变参数模板和 RValue 引用

c++ - 我可以为对象的右值版本删除函数吗?

c++ - 无法识别的命令行选项 '-Zc:__cplusplus' 和无法识别的命令行选项 '-permissive-'