◆Lvalue : 메모리 위치와 식별자를 알 수 있는 값 (나중에 부를 수 있는 값)(& : Lvalue refrence)
◆Rvalue : 메모리 위치와 식별자를 알 수 없는 값 (나중에 부를 수 없는 값)(&& : Rvalue refrence)
◆Lvalue와 Rvalue의 레퍼런스
/ /기본값
int test=0;
// Lvalue의 레퍼런스
int & L_int = test;
// 기본 자료형에 대한 Rvalue레퍼런스를 사용했을경우 int 10으로 저장되어 모호성이 생길 수 있다.
int && R_int = 10;
◆Rvalue를 사용하는 이유
●함수의 매개변수로
▷Lvalue를 사용하면 깊은 복사가 2번 일어나게 되고
▷Lvalue의 refrence의 경우 1번
▷Rvalue의 refrence의 경우 0번 이루어진다.
◆std::move();
int c = std::move(a);
▷Lvalue를 Rvalue로 바꾸어주는 소유권 이전 함수
▷이후 존재하는(a)를 해제해 줄 수 있다.
'코딩 공부 > TIL(Today I Learn)' 카테고리의 다른 글
구름톤 챌린지 3주차 학습 일기(1) 맞왜틀? (0) | 2023.08.29 |
---|---|
구름톤 챌린지 2주차 학습 일기(2) (0) | 2023.08.25 |
구름톤 챌린지 2주차 학습 일기(1) (0) | 2023.08.21 |
구름톤 챌린지 1주차 학습 일기(2) (0) | 2023.08.19 |
[빠른 C++][백준 15552] 빠른 A+B (0) | 2023.07.15 |