Uczę się funkcji rvalue w C++ 11. C++ Primer 5. edycja mówi, że referencja rvalue może tylko wiązać się z wartością r, ale kiedy próbowałem skompilować ten program, to minął, a wyjście to 1 1
.Dlaczego dopuszczalne jest odniesienie do wartości r lawue w g ++ 4.4.6?
Nie rozumiem dlaczego. Używam g ++ 4.4.6 i skompilowane go z
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;
}
Reguła "wartość r zwrotna nie wiąże się z wartościami l" została dodana dość późno w procesie standaryzacji C++ 11. Przypuszczalnie GCC 4.4.6 wdraża wcześniejszy projekt specyfikacji, który nie ma tego zakazu. –
Prawdopodobnie czas na aktualizację kompilatora :) –