이 포스트의 목적
- 일반화 함수자(함수 객체)가 멤버 함수 포인터도 처리할 수 있게 만든다.
이 포스트의 준비물
- Firefox 4.0 b7 - 이제 쓸만해 졌다.
참조 서적
- 안드레 알렉산드레스쿠 저. Modern C++ Design. 이기형 역.
Addiston-Wesley. 인포북. 초판 2003.07.30. page(205 ~ 218)
내용
이 밖에도, 바인딩, 함수 체이닝(체인화), 성능 개선 이슈가 있다.
- 바인딩 이슈
함수자를 만들 때, 함수의 인자 갯수를 미리 설정하는 기술
또는 함수자를 만들 때, 함수자의 인자 갯수를 줄이는 기술
link : boost::bind, boost::function
- 함수 체이닝(체인화) 이슈
여러 함수들을 순차적으로 호출해 주는 하나의 함수로 만드는 기술
link : boost::signal, boost::signal2
- 성능 개선 이슈
모던에서 정의한 function_object 의 경우, new 를 이용해 구현하고 있어, 복사 비용 문제가 있고, 클래스 포장자가 많아 짐에 따라, 인수 전달시 많은 복사 비용을 물어야 하므로, 성능을 개선시킬 필요가 있다.
new 가 사용되는 부분은 메모리 풀을 이용하면 되고, 인수 전달은 const & 나 & 로 대체하면 된다.
개인적인 생각
- 직접 만드는 고통보다는 boost 에서 찾아서 쓰길 권한다. 뭐, 때론 그 고통이 좋은 것일 수도 있으니, 판단은 스스로...
여담
- 다 정리 해야 하나, 포기! 바인딩 쪽과 함수 체이닝은 개념만 이해하고 넘겨야 겠다.
'책 정리 > Modern C++ Design' 카테고리의 다른 글
6장, 싱글턴(Singleton)의 구현 - 5. 싱글턴이 쓰레드를 만났을 경우 고려사항 (0) | 2010.12.05 |
---|---|
6장, 싱글턴(Singleton)의 구현 - 4. 피닉스 싱글턴(phoenix singleton)의 구현과 그 한계점 (2) | 2010.12.04 |
6장, 싱글턴(Singleton)의 구현 - 3. 마이어스 싱글턴(Singleton)의 한계와 개선점 (0) | 2010.12.03 |
6장, 싱글턴(Singleton)의 구현 - 2. 싱글턴(Singleton)의 기초적인 구현 (0) | 2010.11.30 |
6장, 싱글턴(Singleton)의 구현 - 1. 싱글턴(Singleton)이란 무엇인가? (0) | 2010.11.30 |
5장, 일반화 함수자(함수 객체) - 6, 일반화 함수자 구현하기 - 멤버 함수 포함시키기 (0) | 2010.11.28 |
5장, 일반화 함수자(함수 객체) - 5, 일반화 함수자 구현하기 (0) | 2010.11.27 |
5장, 일반화 함수자(함수 객체) - 4, 일반화 함수자 구현하기 (0) | 2010.10.13 |
5장, 일반화 함수자(함수 객체) - 3, C++의 호출 가능한 객체들 (0) | 2010.10.09 |
5장, 일반화 함수자(함수 객체)와 Command 패턴 : 2 - Command 패턴은 무엇인가? (0) | 2010.09.29 |
최근댓글