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


우리의 이전 실습 과제에서는 array, function 등에 대해서 다루지 않았다. 이번 실습 과제에서는 그러한 기능을 보충해서 기본형에 대해서는 거의( ? ) 완벽한 type_descriptor 를 만들고, 그것에 대한 서술문을 출력하도록 하겠다.


일단 이전의 우리 구현에 따르면 array 나 function 과 같은 형식을 다루기 위해서는 remove_xxx meta function 이 존재해야 할 것이다. array 야 remove_bounds 와 같은 meta function 이 있지만, function 을 제거하기 위한 remove 류의 meta function 은 없다. 결국 우리는 function 과 관련한 복합 형식을 분석하기 위해서는 부분 템플릿 특수화에 의존해야 한다는 결론에 도달하게 된다.


그래서 이전의 구현을 다음과 같이 수정했다. Template 부분 특수화를 사용한 버전이다. 아래 구현을 잘 살펴 보면 크게 어렵지 않을 것이라 생각한다. 그리고 함수를 특수화는 귀찮아서 parameter list 가 두 개인 것까지만 구현했다.



위의 코드를 실행하면 다음과 같은 결과가 나온다.



특이한 점은 함수의 parameter list 에 array 표현이 넘어 가게 되면 그것이 pointer 로 취급된다는 것이다.


+ Recent posts