Trong bài này, chúng ta sẽ thảo luận về cách làm việc, cú pháp và các ví dụ của mẫu std ::is_rvalue_reference trong C ++ STL. Mẫu is_rvalue_reference trong C ++ được sử dụng để kiểm tra xem kiểu được xác định có phải là tham chiếu rvalue hay không.
rvalue là gì?
Giá trị là các giá trị nằm ở phía bên phải của toán tử gán. Rvalues là giá trị
Tham chiếu rvalue là gì?
Tham chiếu giá trị được xác định bằng ký hiệu kép và (&&). Điều này được sử dụng để khởi tạo nó chỉ với giá trị rvalue.
Cú pháp
int&& a;
Cú pháp
template <class T> is_rvalue_reference;
Tham số
Mẫu chỉ có thể có tham số kiểu T và kiểm tra xem kiểu đã cho có phải là tham chiếu rvalue hay không
Giá trị trả về
Nó trả về giá trị Boolean, true nếu giá trị đã cho là tham chiếu rvalue và false nếu giá trị đã cho không phải là tham chiếu rvalue hoặc khi chúng tôi đang tham chiếu đến một vị trí không xác định.
Ví dụ
Input: is_rvalue<int&>::value; Output: False Input: is_rvalue<int&&>::value; Output: True
Ví dụ
#include <iostream> #include <type_traits> using namespace std; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nint : "<<is_rvalue_reference<int>::value; cout << "\nint& : "<< is_rvalue_reference<int&>::value; cout << "\nint&&: "<< is_rvalue_reference<int&&>::value; cout << "\nchar : "<<is_rvalue_reference<char>::value; cout << "\nchar& : "<< is_rvalue_reference<char&>::value; cout << "\nchar&&: "<< is_rvalue_reference<char&&>::value; cout << "\nfloat : "<<is_rvalue_reference<float>::value; cout << "\nfloat& : "<< is_rvalue_reference<float&>::value; cout << "\nfloat&&: "<< is_rvalue_reference<float&&>::value; cout << "\ndouble : "<<is_rvalue_reference<double>::value; cout << "\ndouble& : "<< is_rvalue_reference<double&>::value; cout << "\ndouble&&: "<< is_rvalue_reference<double&&>::value; return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Checking for is_rvalue_reference: int : false int& : false int&&: ture char : false char& : false char&&: ture float : false float& : false float&&: ture double: false double : false double&&: ture
Ví dụ
#include <iostream> #include <type_traits> using namespace std; class TP { }; int main() { cout << std::boolalpha; cout << "Checking for is_lvalue_reference: "; cout << "\nTP class : "<<is_rvalue_reference<TP>::value; cout << "\nTP& : "<< is_rvalue_reference<TP&>::value; cout << "\nTP&&: "<< is_rvalue_reference<TP&&>::value; return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Checking for is_rvalue_reference: TP class : false TP& : false TP&&: true