Tôi đang học tính năng giá trị của C++ 11. C++ Primer 5th edition nói rằng một tham chiếu rvalue chỉ có thể liên kết với một rvalue, nhưng khi tôi cố gắng biên dịch chương trình này, nó đã trôi qua, và đầu ra là 1 1
.Tại sao lvalue để ràng buộc tham chiếu rvalue cho phép trên g ++ 4.4.6?
Tôi không hiểu tại sao. Tôi đang sử dụng g ++ 4.4.6, và biên dịch nó với
g ++ Wall -std = C++ 0x test.cpp -o test
#include <iostream>
using namespace std;
int main()
{
int i = 0;
int &&rr = i;
rr = 1;
std::cout << rr << std::endl;
std::cout << i << std::endl;
return 0;
}
Quy tắc "tham chiếu rvalue không ràng buộc với giá trị" đã được thêm vào khá muộn trong quy trình chuẩn hóa C++ 11. Có lẽ GCC 4.4.6 đang thực hiện một dự thảo trước đó của đặc điểm kỹ thuật mà không có lệnh cấm đó. –
Có lẽ thời gian để nâng cấp trình biên dịch của bạn :) –