【发布时间】:2015-07-14 02:01:30
【问题描述】:
我正在学习 C++11 的右值特性。 C++ Primer 5th edition 说右值引用只能绑定到右值,但是当我尝试编译这个程序时,它通过了,输出为1 1。
我不明白为什么。我正在使用 g++ 4.4.6,并用
编译它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;
}
【问题讨论】:
-
“右值引用不绑定到左值”规则是在 C++11 标准化过程的后期添加的。据推测,GCC 4.4.6 正在实施没有该禁令的规范的早期草案。
-
可能是时候升级你的编译器了 :)