TMP


## ***Template Meta Programming***
컴파일러에게 프로그램 코듸를 생성하도록 하는 방식
컴파일 시점에 많은 것을 결정하도록 하여, 실행 시점의 계산을 줄여준다
```typetemplate <int N>struct Factorial {  enum { value = N * Factorial<N - 1>::value };};template <>struct Factorial<0> {  enum { value = 1 };};// Factorial<4>::value == 24// Factorial<0>::value == 1```



> [씹어먹는 C++ -](https://modoocode.com/221)

> [템플릿 메타프로그래밍 - 위키백과, 우리 모두의 백과사전](https://ko.wikipedia.org/wiki/%ED%85%9C%ED%94%8C%EB%A6%BF_%EB%A9%94%ED%83%80%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)





