Part 3, 테크닉 3-9 typelist에서 특정 자료형 제거하기
어떻게 하면 특정 자료형을 지울 수 있을까? 가장 작은 알고리즘을 생각한다면, 다음고 같을 것이다. 1. 지울 자료형이 있는지 찾는다. 2. 있다면, 지운다. 3. 없다면, 그대로 둔다. 여기서 "1. 지울 자료형이 있는지 찾는다"에서 다음 질문이 이어 질 수 있다. 어떻게 찾을 수 있는가? 찾는 방법은 찾고자 하는 타입과 비교 대상이 같은지 비교 하는 것이다. 다시 다음 질문으로 이어 질 수 있겠다. 비교 대상은 무엇이며, 어떻게 비교 할 수 있는가? 비교 대상은 typelist 구조상 첫번째 Head 타입일 수밖에 없다. Tail 타입은 typelist이거나 NullType 인데, 이것들은 비교 할 수가 없다. Head 타입을 비교 하는 방법은, 템플릿 부분 특수화 밖에 없다. 여기서 예외가 하나 발..
책 정리/Modern C++ Design
2009. 9. 1. 00:10
최근댓글