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

时间:2014-09-01 02:14:46

标签: 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)
    {

    }
};

1 个答案:

答案 0 :(得分:5)

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