I have tried to compile:
int &&a=3;
int &b=a;
And it work. I know that "a" is an lvalue, but why i can bind an "rvalue reference to int" to an "lvalue reference to int (not to an rvalue reference to int)"? This way, i can change the value of the temporary, 3:
b=5 //changing the value of the temporary bound to the rvalue reference
This tecnique is used from std::forward, so i suppose it is a standard behavior. Is an rvalue reference to int considered as a simple int lvalue storing a temporary? If not, how do you explain the binding?