이 포스트의 목적

  • 일반화 함수자(함수 객체)를 구현하는 방법을 알아 본다.

이 포스트의 준비물

  • 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. 그냥 함수자의 경우, 기본틀은 다음과 같을 것이다.

  2. 1번에서, 리턴타입이 void 로 고정되어서 일반화 함수자로 쓸수 없다. 그래서 리턴타입을 변할수 있게 템플릿을 주어야 한다. 그러면 다음과 같이 될것이다.

  3. 2번에서, 리턴타입을 템플릿으로 주었듯이 이번엔 함수자의 파라미터를 템플릿으로 바꾸어야 한다. 우선 인자 두개까지만 받을수 있다고 친다면, 다음과 같이 틀을 짤수 있다.

  4. 3번에서 operator()가 많이 정의되어 있지만, 실제로 인스턴스화 되는 함수는 클래스 템플릿당 한개밖에 없다.

기본틀에서 어떻게 정의 부분을 구현할까?

다음에 정리하겠다.

여담

  • 너무 졸렵다. 내일 정리하자.


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기