&& là toán tử tham chiếu mới được định nghĩa trong chuẩn C++11. int&& a nghĩa là "a" là tham chiếu r-value (r-value reference). && thường chỉ dùng để khai báo tham số hàm. Và nó chỉ nhận biểu thức r-value.
Đơn giản, r-value là giá trị không có địa chỉ bộ nhớ. Ví dụ: số 6, ký tự 'v' đều là r-value. int a, thì a là l-value, nhưng (a+2) là r-value.
Ví dụ
void foo(int&& a) {
// Một số code kỳ diệu...
}
int main() {
int b;
foo(b); // Lỗi. Tham chiếu r-value không thể trỏ đến l-value.
foo(5); // Biên dịch OK.
foo(b + 3); // Biên dịch OK.
int&& c = b; // Lỗi. Tham chiếu r-value không thể trỏ đến l-value.
int&& d = 5; // Biên dịch OK.
}
Đọc thêm về R-values và toán tử này tại: https://blogs.msdn.com/b/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx