인프런 커뮤니티 질문&답변
[6:35] 반환값 최적화에 대해서 질문 있습니다
작성
·
217
0
안녕하세요?
반환값 최적화에 대해 궁금한 점이 있어서 질문 드립니다.
해당 시간 화면을 보면, release 모드로 바꿔주었을때 call-by-value임에도 불구하고 doSomething 함수에 있는 temp 인스턴스와 main 함수에 있는 result 인스턴스의 주소가 서로 동일함을 확인할 수 있었습니다.
혹시 반환값 최적화는
1. release 모드로 바꿀 때
2. 초기화가 되는 대상이 '클래스'일 때
이 두가지를 반드시 포함해야만 반환값 최적화가 되는 건가요?
항상 영상 잘 보고 있습니다. 감사드립니다.
퀴즈
66%나 틀려요. 한번 도전해보세요!
사용자 정의 타입에 대해 연산자 오버로딩을 하는 주된 목적은 무엇일까요?
코드 실행 속도를 빠르게 하기 위해
사용자 정의 타입을 내장 타입처럼 자연스럽게 사용하기 위해
객체의 메모리 관리를 자동화하기 위해
클래스의 상속 관계를 정의하기 위해
답변 1
1
홍정모
지식공유자
1. RVO는 컴파일러가 알아서 최적화해주는 것이기 때문에 엄밀히 얘기하면 컴파일러 옵션에 RVO가 허용으로 되어 있으면 적용할 수 있는 경우에 적용하겠지요. 제 경험으로는 release로 빌드할때 적용됐던 것으로 기억 합니다. 아마 강의에서 debug와 비교해서 주소 확인하는 방법을 알려드렸을 것 같습니다.
2. 기본 자료형도 되는 것으로 기억합니다. 이것도 직접 주소를 확인해보시면 될 것 같습니다.





