- [Modern C++ 정리] Move 12022년 09월 07일
- starryeye
- 작성자
- 2022.09.07.:14
temporary에 이어 move에 대해 학습 해보자.
본격적으로 들어가기전에 "&" 키워드의 명칭은 원래 reference로 알고있는 경우가 많은데
사실 정확한 명칭은 lvalue reference이다.
"&&" 키워드의 명칭은 rvalue reference 이다.
9 line에서 Point 클래스의 지역 변수 객체 pt를 선언하였다.
규칙 1. non const lvalue reference로는 lvalue만 가리킬 수 있다.
pt는 lvalue이므로 lvalue reference (r1) 로 가리킬 수 있다. (11 line)
Point()는 임시객체(rvalue) 이므로 lvalue reference로 가리킬 수 없다. (12 line)
규칙 2. const lvalue reference로는 lvalue, rvalue 모두 가리킬 수 있다.
15, 16 line
규칙 1, 2 까지는 C++98에 포함된다.
C++11에서는 상수성 없이 임시 객체를 가리키는 것이 필요했다.
규칙 3. C++11에서 나온 rvalue reference는 rvalue만 가리킬 수 있다.
19, 20 line
<참고>
const rvalue reference는 rvalue만 가리킬 수 있다..
하지만 거의 사용되지 않는다.
(rvalue reference는 주로 move 때문에 사용되는데, const는 move 될 수 없기 때문)
23, 24 line
'C++' 카테고리의 다른 글
[Modern C++ 정리] Move 3 (0) 2022.09.08 [Modern C++ 정리] Move 2 (0) 2022.09.08 [Modern C++ 정리] Temporary 6 (0) 2022.09.06 [Modern C++ 정리] Temporary 5 (0) 2022.09.06 [Modern C++ 정리] Temporary 4 (0) 2022.09.06 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)