ramchoong0   1년 전

안녕하세요.

C++ universal reference 문법을 공부하다가 궁금한 점이 생겨 질문 드립니다.


아래 코드에서 저는 ret_val에서는 copy constructor가 불리고, ret_univ_ref에서는 move constructor가 불릴 것을 예상하였습니다

하지만 결과는 default constructor 외에는 아무것도 출럭되지 않았습니다.

왜 copy / move constructor가 불리지 않은 것인지 궁금합니다.

예를 들어 최적화의 결과로 copy / move가 일어나지 않게 된 것이라던지,

아니면 실제로 copy / move는 다른 함수에서 일어나고 있는 건데 제가 그 함수를 못찾은 건지 궁금합니다.


또 위와 같이 함수 return 시에 copy / move constructor가 불리게 하려면 제가 예제 코드를 어떤식으로 작성하여야 할까요?


도움이 될만한 자료를 알려주셔도 감사하겠습니다.

읽어주셔서 감사합니다!

ramchoong0   1년 전

Return Value Optimization (RVO) 으로 stack상의 메모리 주소를 바로 참조한게 아닐까 추측되네요.

(https://web.archive.org/web/20...)

댓글을 작성하려면 로그인해야 합니다.