우측값은 요약하면

0. 이해못하면 쓰지 말거나 보장된 용도 

(STD 클래스들은 접근해야하는 멤버에 접근 못할 수 있어서 이동 연산자를 이용해야함. 그래서 우측값이 필수)

로만 사용한다. 그래도 상관없다.

1. "사용자 지정 클래스"의 경우, 컴파일러 자체 최적화와 참조, 포인터가 전부 우측값 참조의 역할을 대신할 수 있다. 좀 덜 깔끔해질 뿐.

2. 임시객체의 수명 연장. (솔직히 쓸 일 없음.)

3. 얕/깊 복사중 어떤 선택을 할지, 인자의 std::move() 형변환을 통해 구분시킬 수 있게 함으로써 선택지를 준다.

4. 대형 데이터의 "이동"을 포인터나 크기가 고정된 데이터의  "복사"만으로 할 수 있게 해줌. 즉 이동의 본질은 동적 할당/크기인 데이터의 포인터(대부분)같은 작은 자료형들의 복사나 스왑임.

5. 클래스가 우측값과 이동연산을 따로 지원하지 않으면 그냥 참조나 우측값 참조나 복사 속도는 도찐개찐임. (Call by Value보단 휠씬 나음)