r-value란?
int a = 10;
값을 대입할때 왼쪽
에있는 값이 l-value
이고 l-value 자리에는 변수
가 올 수 있고,
오른쪽
에 있는 값이 r-value
이고 r-value의 자리에는 변수
, 상수
모두 올 수 있다.
여기서는 a가 l-value, 10이 r-value가 된다.
int a = 3+7;
또, r-value 자리에는 임시객체
가 올 수 있다.
3+7의 연산 결과인 11은 중간 결과이고, 이런 중간결과는 항상 상수이다.
그리고 이게 만약 클래스의 객체라면 임시객체
라고 한다.
r-value 참조란?
임시객체를 참조하는것을 r-value 참조
라고 한다.
int a = 10;
int &&rdata = a + 5;
이런 중간 결과
는 이어지는 연산에 활용된 직후 소멸
하는 r-value 이다.
r-value 참조는 이제 곧 사라질 대상에 대해서 참조
자를 부여할 수 있다.