책 정리/Modern C++ Design
5장, 일반화 함수자(함수 객체) - 4, 일반화 함수자 구현하기
최익필
2010. 10. 13. 03:52
이 포스트의 목적
- 일반화 함수자(함수 객체)를 구현하는 방법을 알아 본다.
이 포스트의 준비물
- VMware player 3.1.2
- Debian 5 64bit
- g++ 4.3.2
- vim 7.1.314
- project.vim
- make
참조 서적
- 안드레 알렉산드레스쿠 저. Modern C++ Design. 이기형 역.
Addiston-Wesley. 인포북. 초판 2003.07.30. page(183 ~ 190)
내용
boost에 있는데, 모하러 구현하냐 싶지만, 구현하는 과정 중에 배움을 얻기 위해서 구현해 보는 것이다. 그러므로 구현해 본다.
기본틀은 어떻게 잡을까?
- 그냥 함수자의 경우, 기본틀은 다음과 같을 것이다.
- 1번에서, 리턴타입이 void 로 고정되어서 일반화 함수자로 쓸수 없다. 그래서 리턴타입을 변할수 있게 템플릿을 주어야 한다. 그러면 다음과 같이 될것이다.
- 2번에서, 리턴타입을 템플릿으로 주었듯이 이번엔 함수자의 파라미터를 템플릿으로 바꾸어야 한다. 우선 인자 두개까지만 받을수 있다고 친다면, 다음과 같이 틀을 짤수 있다.
- 3번에서 operator()가 많이 정의되어 있지만, 실제로 인스턴스화 되는 함수는 클래스 템플릿당 한개밖에 없다.
기본틀에서 어떻게 정의 부분을 구현할까?
다음에 정리하겠다.여담
- 너무 졸렵다. 내일 정리하자.