더북(TheBook)

1.5.2 결과 반환

이전 예제에서는 double 또는 int만 반환했었다. 두 타입은 리턴 타입으로 잘 동작하는 타입이다. 이제 우리는 데이터가 크거나 없는 양극단의 경우를 살펴보려고 한다.

1.5.2.1 큰 데이터 반환하기

크기가 큰 자료 구조의 새 값을 계산하는 함수는 매우 까다롭다. 자세한 내용은 나중에 설명하고 여기서는 옵션에 대해서만 언급한다. 좋은 소식은 컴파일러가 많은 경우에 반환 값의 복사본을 삭제할 만큼 똑똑하다는 것이다. 이에 대해서는 2.3.5.3절을 보라. 또한, 임시 데이터에 이동 문법(2.3.5절 참조)을 사용하면 앞서 언급한 생략이 적용할 수 없을 때 복사본을 피할 수 있다. 고급 라이브러리는 표현식 템플릿이라고 하는 기법으로 크기가 큰 자료 구조를 반환하지 않으며 결과를 저장할 위치를 알 때까지 계산을 지연시킨다(5.3.2절 참조). 어쨌든 우리는 지역 함수 변수의 레퍼런스를 반환하면 안 된다(1.8.6절 참조).

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.