如果传递的对象没有复杂数据,使用右值引用是否有任何优势?例如,以下是否比仅使用引用有任何优势?
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)
{
}
};
答案 0 :(得分:5)
我相信你给出的例子没有任何好处。对于基本数字类型,例如float
移动和复制实际上是相同的操作。