rvalue referenceは、rvalueではない。私は今まで、これを深く考えたことはなかった。一体どういうことなのか。 int a ; // Error int && b = a ; // OK. the same thing std::move() does. int && c = static_cast< int && >(a) ; // Error. Why? int && d = c ; bはエラーになるのは、常識でも理解できる。しかし、なぜdがエラーになるのか。まったく同じ型ではないか。また、こんな例もある。 // lvalue reference void f( int & ) {} // rvalue reference void f( int && ) {} int main() { int x = 0 ; int && ref = std::move(x) ; /