주의 : 공부하면서 정리한 것이기 때문에 오류가 있을 수 있습니다.


실습 과제 3-1 :


transform 을 이용해서, vector_c< int, 1, 2, 3 > 를 요소 ( 2, 3, 4 ) 를 가진 형식 순차열로 변환하라.




풀이 :


각 요소에 1 씩을 더하는 것이 이 문제의 핵심이다. 


3 장을 총정리하는 관점에서 boost 의 메타 함수를 사용하면 다음과 같이 쉽게 문제를 풀 수 있다.



하지만 이런 식으로 풀라고 문제를 낸건 아니지 않을까 하는 찝찝함이 남기는 한다. 


여기에서 주의할 것은 isSame 과 isSame2 를 구하기 위해서 boost::is_same 메타 함수를 사용해서는 안 된다는 것이다. vector_c 메타 함수가 불릴 때마다 새로운 type 이 생성되는 것이기 때문에 boost::is_same 을 사용하면 모조리 false 가 나온다. 요소가 같은지를 검사하기 위해서는 mpl::equal 메타 함수를 사용해야만 한다.


+ Recent posts