• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

우측값을 매개변수로 했을때의 의미

22.05.03 07:36 작성 조회수 209

0

안녕하세요 선생님

일단 우측값을 사용할경우 어떻게 동작되는지 숙지했습니다.

우측값 사용에 대한의미도

값에대한 복사가 아닌 이동이라고하는데...

여기서 궁금한점은 굳이 && 우측값을 사용하는가 입니다.

기능적으로는 이동이라는 개념을 포인터나..  const가 아닌 레퍼런스로도 똑같이 따라할수있을거라고 생각합니다. 그 이유가 무엇인지 알수있을까요?

답변 2

·

답변을 작성해보세요.

0

그렇군요 감사합니다 선생님

0

말씀대로 참조는 개념적으로 그냥 주소값을 넘기는 것입니다.
우리가 원하는 오른값&&은 그보다 더 심오한 의미를 담고 있으며
어떻게 보면 [이동시킨다]는 행위는 원본 객체가
더 이상 유효하지 않아도 된다는 의미로 받아들일 수도 있습니다.
포인터를 이리 저리 넘기는 것은 동일한 객체를 여러 군데에서 [바라보는] 것이고
[이동]이라는 행위는 객체 그 자체가 여러 군데에서 관리되지 않음을 의미합니다.
예를 들어 unique_ptr을 예로 들면 정말 딱 1개만 존재해야 하는 포인터인데
이를 다른 함수에 막 복사해서 사용하면 이상하겠죠?
그러니 분명히 구분이 필요하겠죠.

참고로 &&이 꼭 우측값을 의미하진 않고 
template이나 auto 등과 사용되면
보편 참조(universal reference)의 의미도 있습니다.