해결된 질문
작성
·
286
답변 1
1
https://dydtjr1128.github.io/cpp/2019/08/10/Cpp-RVO(Return-Value-Optimization).html
스스로 해결하였기 때문에 답변 안주셔도 됩니다. 또한, 다른 사람들도 궁금해 할 수도 있기 때문에 이 게시글은 지우지 않겠습니다.
결론부터 말하자면, 멤버함수에서 객체를 반환할 때 멤버변수를 임시객체에 대입해주지 않으면 묵시적 형변환으로 복사 생성자가 호출되면서 최적화가 안된다고 합니다. 그러나, 릴리즈모드에서는 임시객체로 대입해서 RVO(Return Value Optimization)해주거나 멤버변수 그대로 리터해줘서 NRVO(Named Return Value Optimization)을 해줘도 차이가 없다고 합니다.