Type Traits을 왜 알아야 하는가?
C++ Template Metaprogramming 을 하기 위해서는 Template에서 사용 되는 변수들이 무엇인지 알아야 할 것이다. 알다시피 템플릿의 변수들은 타입과, 컴파일 타임에 확인 가능한 상수들이다. 즉, 이러한 변수들을 이용하여, 메타 프로그래밍을 하는 것이다.
이러한 변수들은 더하거나 빼거나, 비교하여, 특정 "연산"을 수행 할 수 있게 되는데, 그것을 "메타 프로그래밍" 이라 부를 수 있다. 이것은 말하는 더하거나 빼거나 등의 "기본 연산"이 있어야 된다는 전제이다. 메타 프로그래밍을 하기 위한 "기본연산"인 Boost 의 MPL 이다.
예를 들자면, "수"를 계산하기 위해선 "계산"이 필요하고, 이 계산의 기본인 "사칙연산"이 있다는 것을 들 수 있다.
메타 프로그래밍 과 수학을 비교하여 나타내어 진다면
수 == 변수,컴파일 타임에 확인 가능한 상수
계산 == Boost Type Traits
로 보아도 무리가 없을 것이다.
Type Traits 이란 무엇인가?
Type Traits은 Boost 라이브러리 중 한 라이브러리이며, 이번 C++ 0x의 표준에 채택이 된 라이브러리이다. Type Traits은 메타 프로그래밍을 하기 위한 "계산기" 라고 봐도 될 것이다.
Type Traits에 대한 기초지식은 다음 항목에서 짚어 본다.
총평
음~ Type Traits 이 필요하구나란 생각을 하게 된다. 기본 연산이 있어야 무엇을 할 수 있듯이 말이다.
'책 정리 > C++ Template Metaprogramming' 카테고리의 다른 글
CPPTM : 2 장 실습과제 : (Chapter 2 : Answers ) (2) | 2008.12.21 |
---|---|
CPPTM : 메타 프로그래밍에서 쓰이는 기초 용어 모두 정리 (0) | 2008.12.21 |
CPPTM : Boost Type Traits 이란 무엇인가? (0) | 2008.12.21 |
C++ Template Metaprogramming : CPPTM - cd backup (0) | 2008.12.21 |
C++ 템플릿 메타프로그래밍 : C++ Template metaprogamming 개념 사냥하기 (0) | 2008.12.04 |
C++ Template Metaprogramming : 메타 프로그래밍의 강력함에 맛들다. (0) | 2008.12.04 |
최근댓글