가독성

  • 템플릿 메타프로그래밍의 문법과 형태는 일반적인 C++ 프로그래밍에 비해 훨씬 난해하다. 아예 다른 메타언어 또는 스크립트 언어로 취급하는 것이 좋다.
  • 타입 제한을 위해 작성한 SFINAE 문장이 함수 본문보다 몇 배 더 길어지는 배와 배꼽이 뒤바뀐 상황도 볼 수 있다.
  • 디버깅 시에 나오는 오류 메시지가 장황하고 복잡하다. 타입 연산이 들어가기 때문에 실행시간 오류가 한 줄로 끝날 부분이 한 '화면'을 넘어가는 경우도 생긴다. 수십, 수백 줄에 걸쳐 변수 하나를 표현한 오류를 보고 있자면 분석할 방법부터 찾고 봐야 한다. 이는 정의 없는 템플릿 클래스에 타입을 집어넣어서 확인하는 기법이나 템플릿 오류 분석기 등을 동원해야 수월하게 넘길 수 있다.



아니 무슨 템플릿 오류 분석기를 동원해야 할 정도냐고 시발