C++中的右值引用是一種特殊的引用類型,它允許我們識別并綁定到臨時對象(也就是右值)。右值引用在C++11中被引入,主要用于支持移動語義和完美轉發。以下是右值引用的一些主要區別和特點:
int&& rvalue_ref = 42; // 右值引用
int& lvalue_ref = 42; // 普通引用
std::vector<int> vec1 = {1, 2, 3};
std::vector<int> vec2 = std::move(vec1); // 使用右值引用實現移動語義
template <typename T>
void wrapper(T&& arg) {
// arg 可以是左值或右值,可以是const或非const
}
class MyClass {
public:
MyClass(MyClass&&) = delete; // 禁用拷貝構造函數
MyClass& operator=(MyClass&&) = delete; // 禁用拷貝賦值運算符
};
總之,C++中的右值引用提供了一種強大的機制,用于支持移動語義和完美轉發,從而提高了代碼的性能和可維護性。