책에선 Typelists가 무엇인지 초반에 설명해 주지 않는다. 그래서 3장을 끝까지 봤다. boost::tuple 과 비슷하다는 생각을 많이 했다. 책에서 설명하는 Typelist는 좀 더 응용 될 수 있다.
3장 도입부의 내용이 아리송 했었다. 그 이유는 도입부는 추상 팩토리 개념을 일반화 하는데 Typelists가 필요하다고 설명하고 Typelists 설명부에서는 boost::tuple과 비슷한 개념을 설명하기 때문이다.
추상 팩토리 개념의 일반화는 9장에서 설명한다고 하니, 책의 구성이 크게 잘못되었다고 생각하지 않는다. 나는 정리를 위하여 Typelists의 필요성에 대해서만 책과 내용을 크게 달리 하겠다.
3.1 Typelists 의 필요성
코딩을 하다보면, 가끔씩 두개 이상의 자료형을 묶어서 값을 대입해주거나, 리턴받아야 할 때가 있다. 이럴 때 구조체를 정의 하는데, 보통 두개 이상의 자료형을 묶는다. 예를 들자면 다음 코드를 추가 될때마자 주구장창 만들어야만 한다.
이러한 작업은 정말 많은 중복된 코드를 프로그래머에게 요구하게 되어, 결국 전체 코드를 지저분하게 만들며, 쓸때 없이 라인만 주구장창 늘어나게 된다. 그렇다!!! 우리에겐 type들을 묶어줄 자료구조가 필요하다! 이러한 필요성은 당근밭에 나가 당근을 손으로만 뽑아 힘들어 죽어나갈때 트렉터의 필요성의 크기와 같다!!
이러한 typelists는 다음과 같이 손쉽게 정의하고 사용하면 더할나위 없을 것이다.
정말 꿈만 같은 사용법이다. 스크립트 언어라면, 뭐 별 시덥지 않은거 가지고 그러지? 하겠지만말이다. :)
필요성은 여기까지고 다음 장부터 실제 어떻게 구현할 수 있는지 다루기로 한다.
관련링크
http://www.ddj.com/cpp/184403813
http://deadwi.jaram.org/wiki/wikka.php?wakka=ModernCppDesignTypelists
http://support.typepad.com/cgi-bin/typepad.cfg/php/enduser/std_adp.php?p_faqid=29
'책 정리 > Modern C++ Design' 카테고리의 다른 글
Part 3, 테크닉 3-6 Index에 대한 접근 (0) | 2009.08.31 |
---|---|
Part 3, 테크닉 3-5 중간 첨언, 왜 재귀밖에 사용하지 못할까? (0) | 2009.08.31 |
Part 3, 테크닉 3-4 Typelist의 길이 계산 방법 (710) | 2009.08.28 |
Part 3, 테크닉 3-3 Typelist의 선형화 (0) | 2009.08.28 |
Part 3, 테크닉 3-2 Typelist의 정의 (0) | 2009.08.20 |
Part 2, 테크닉 : 2-10 Traits 자료형 (0) | 2009.07.30 |
Part 2, 테크닉 : 2-9 NullType과 EmptyType (710) | 2009.07.28 |
Part 2, 테크닉 : 2-8 type_info에 대한 포장 클래스 만들기 (0) | 2009.07.24 |
Part 2, 테크닉 : 2-7 형변환과 상속 가능의 여부를 컴파일 타임에 일어 내는 방법 (0) | 2009.07.24 |
Part 2, 테크닉 : 2-6 자료형의 선택 테크닉 (0) | 2009.07.23 |
최근댓글