항목 46 : 포워딩 함수 (난이도 : 3)
포워딩 함수가 무엇이며, 어떻게 효율적으로 구사할수 있는지에 대해서 이야기이다. 포워딩 함수란, 다른 개체나 함수등으로 일을 떠넘기는 함수를 뜻하며, 개념적으로 switch 함수라고 보면 될 것이다. 포워딩 함수의 예 bool f( X x ) { return g( x ); } 문제 : 어떻게 하면 효율적으로 바꿀 수 있을까? ... .. . 1. 값을 매개변수로 넘기는 대신 const&를 매개변수로 넘기자. 이렇게 되면 불필요한 복사생성자 호출이 없어 지므로, 효율적으로 포워딩 함수를 구성 할 수가 있다. 여기에 대해서 몇가지 부수적으로 이야기가 붙여지는데, x는 f() 에서 사용되어지지 않고 g의 매개변수로써만 사용되기 때문에, 컴파일러 단계에서 최적화 시켜, 복사 생성자 호출을 제거 할수 있다. 그러..
책 정리/Exceptional C++
2008. 10. 4. 11:39
최근댓글