코드의 미묘한 중복을 줄이는데 템플릿만한 것이 없다고 생각한다.
보통 아래와 같은 패턴을 가진 함수들... 즉 Value와 Data의 타입이 다르지만 뭔가 동일한 루틴을 가진 함수들...
이런 함수들이 여러개 있다면, 주저 없이 boost::bind를 사용해서 중복을 줄여보자.
( STL의 bind도 가능하지만, mem_fun에서 받을 수 있는 인자는 1개 뿐인 반면 boost는 8개다 )
Code Snippet
결과
(Result: 1 (Sum: 3 | Sum2가 template이 아니라면 간단히 호출 가능
(Result: 1 (Sum: 3 | Sum2가 template이라면 mem_fn을 명시적으로 호출
(Result: 1 (Sum: 3 | mem_fn을 바인드 시켜서, 나중에 인자와 함께 호출
(Result: 1 (Sum: 3 | 함수 자체를 funtion에 바인드도 가능
(Result: 1 (Sum: 6 | 인자3개짜리가 필요할 때도 간편하게 사용
보통 아래와 같은 패턴을 가진 함수들... 즉 Value와 Data의 타입이 다르지만 뭔가 동일한 루틴을 가진 함수들...
이런 함수들이 여러개 있다면, 주저 없이 boost::bind를 사용해서 중복을 줄여보자.
( STL의 bind도 가능하지만, mem_fun에서 받을 수 있는 인자는 1개 뿐인 반면 boost는 8개다 )
Code Snippet
결과
(Result: 1 (Sum: 3 | Sum2가 template이 아니라면 간단히 호출 가능
(Result: 1 (Sum: 3 | Sum2가 template이라면 mem_fn을 명시적으로 호출
(Result: 1 (Sum: 3 | mem_fn을 바인드 시켜서, 나중에 인자와 함께 호출
(Result: 1 (Sum: 3 | 함수 자체를 funtion에 바인드도 가능
(Result: 1 (Sum: 6 | 인자3개짜리가 필요할 때도 간편하게 사용
'Code Snippets > Boost' 카테고리의 다른 글
함수 호출 연기 & 함수 타입 캐스팅 (0) | 2010.09.17 |
---|---|
Nested Bind (0) | 2010.09.09 |
Generalized Function Pointers (0) | 2010.09.06 |
boost 관련 유용한 링크 모음 (0) | 2010.08.20 |
Boost Thread (0) | 2010.08.20 |