下面的代码编译并运行正常.只是当我以为我开始对rvalue引用和std :: forward有一个很好的把握 – 这个非常简单的代码揭示了我不了解的rvalue的一些非常重要的东西.请澄清.
#include <iostream> #include <iomanip> using namespace std; void fn( int&& n ) { cout << "n=" << n << endl; n = 43; cout << "n=" << n << endl; } int main( ) { fn( 42 ); }
我用g 4.7编译它与以下命令行:
g –std = c 11 test.cpp
输出为:
N = 42
N = 43
我的主要问题是编译器在函数fn中存储’n’