하나 이상의 참조 종류를 갖는 기본 아이디어는 객체의 다양한 사용을 지원하는 것이다. non const lvalue 참조는 참조 사용자가 참조할 수 있는 객체를 참조한다. const value 참조는 상수를 참조하며, 이는 참조의 사용자다. rvalue 참조는 참조 사용자가 할 수 있는 임시 객체를 참조한다. 일반적으로 객체가 다시는 사용되지 않을 것이라고 가정하고 수정한다. 참조가 임시를 참조하는지 알고 싶을 때가 있다. 만약 그렇다면 값 비싼 복사 작업을 저렴한 이동 작업으로 바꿀 수 있기 때문이다. 잠재적으로 엄청난 양의 정보를 가리키는 small descriptor로 표현되는 객체(문자열 혹은 목록)는 소스가 다시 사용되지 않을 것이라는 것을 안다면 간단하고 저렴하게 이동할 수 있다. 전형적인 예..