템플릿 메타프로그래밍은 기존 작업을 런타임에서 컴파일 타임으로 전환하는 효과를 낸다. 따라서 TMP를 쓰면 선행 에러 탐지와 높은 런타임 효율을 낼 수 있다. TMP는 정책 선택의 조합에 기반하여 사용자 정의 코드를 생성하는 데 쓸 수 있으며, 특정 타입에 대해 부적절한 코드가 만들어지는 것을 막는 데도 쓸 수 있다. 템플릿 메타프로그래밍 템플릿 메타프로그래밍(template metaprogramming: TMP)은 컴파일 도중에 실행되는 템플릿 기반의 프로그래밍을 말한다. 템플릿 메타프로그램은 C++ 컴파일러가 실행시키는, C++로 만들어진 프로그램이다. TMP프로그램이 실행을 마친 후엔 그 결과로 나온 출력물이 다시 보통의 컴파일 과정을 거친다. C++은 템플릿 메타프로그래밍을 염두에 두고 설계되지는..