Код ниже компилируется и работает просто отлично. Просто, когда я подумал, что начинаю получать приличное понимание по ссылке rvalue и std:: forward - этот очень простой код обнаруживает, что есть что-то очень фундаментальное в отношении значения, которое я не понимаю. Просьба уточнить.
#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 = С++ 11 test.cpp
Выход:
п = 42
п = 43
Моя основная проблема заключается в том, где компилятор хранит 'n' в функции fn?