«   2018/12   »
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
Tags
more
Archives
Today
0
Total
2,777
관리 메뉴

갱스

rvalue reference 본문

분류없음

rvalue reference

pknam 2017.12.17 20:54
우선 rvalue와 lvalue를 구별할 수 있어야 한다. 아래 포스트에 잘 설명되어있다.

move 개념이 등장하기 전까진 move와 copy 모두 copy방식으로 구현해왔었다. 하지만 move와 copy를 구별해서 코드를 짜면 불필요한 메모리할당과 복사를 피할 수 있다. 굳이 copy를 하지 않고 move만으로 기능구현이 가능하다면 move를 하도록 하자.

특히 라이브러리나 엔진같은 기반코드를 작성하는 프로그래머라면, 본인이 만들 클래스가 이동될 것인 지 복사될 것인 지를 잘 디자인해야 한다. 만약 이동만으로 충분하다면 복사생성자와 복사대입연산자를 지워버리고(= delete) 이동생성자와 이동대입연산자만 제공하는 것을 고려해본다.

아래 코드는 move semantic의 등장배경을 이해해볼 수 있는 예제이다. MoveFrom()과 CopyFrom()을 잘 들여다 보자.



0 Comments
댓글쓰기 폼