c++/모던c++
meta template(moden c++ 방법)
kcj3054
2022. 5. 23. 23:57
템플릿 메타 프로그래밍
템플릿은 일반적으로 컴파일 타임에 결정된다. 이러한 것을 활용한 것이 템플릿 메타프로그래밍이다..
메타 템플릿은 c++11이 발표되기전에 사용... 현재는 modernc++에서는 constexpr 함수 사용..
constexpr size_t factorial(size_t n)
{
return n == 1 ? 1 : n * factorial(n - 1);
}
int main()
{
constexpr size_t ret = factorial(5);
cout << ret << endl;
}
- 원래 메타프로그래밍에서는 재귀를 사용하면서 재귀 종료를 위해서 특수화를 사용했는데 constexpr을 사용하면서, 간단해졌다..