주의 : 공부하면서 정리한 내용이므로 오류가 있을 수 있습니다.
실습 과제 4-1 :
mpl::or_ 와 mpl::and_ 를 본 딴, logical_or 와 logical_and 라는 이름의 이항 메타함수들을 구현하라. 그리고 실습 과제 4-0 의 테스트들로 그 구현을 시험하라.
풀이 :
이 문제는 게으른 평가( lazy evaluation )에 대한 이해를 얼마나 하고 있는지를 확인하는 문제이다. 게으른 평가가 되기 위해서는 ::type 이나 ::value 가 명시적으로 지정되면 안 된다.
필자는 부분 특수화를 통해서 이 문제를 해결했다. 자세한 사항은 주석을 참조하라.
아래 링크에 있는 다른 사람의 구현도 살펴 보기 바란다.
http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl?CPPTM_Answers_-_Exercise_4-1
'Programming > CPPTM' 카테고리의 다른 글
C++ Template Metaprogramming 실습 과제 2-6 풀이 (0) | 2012.12.31 |
---|---|
C++ Template Metaprogramming 실습 과제 4-5 풀이 (0) | 2012.12.28 |
C++ Template Metaprogramming 실습 과제 4-4 풀이 (0) | 2012.12.17 |
C++ Template Metaprogramming 실습 과제 4-3 풀이 (0) | 2012.12.13 |
C++ Template Metaprogramming 실습 과제 4-2 풀이 (0) | 2012.12.13 |
C++ Template MetaProgramming 실습 과제 4-0 풀이 (0) | 2012.12.10 |
C++ Template MetaProgramming 실습 과제 3-7 풀이 (0) | 2012.12.01 |
C++ Template MetaProgramming 실습 과제 3-6 풀이 (0) | 2012.12.01 |
C++ Template MetaProgramming 실습 과제 3-5 풀이 (0) | 2012.11.29 |
C++ Template MetaProgramming 실습 과제 3-4 풀이 보충 (0) | 2012.11.28 |