본문 바로가기
c++/모던c++

meta template(moden c++ 방법)

by kcj3054 2022. 5. 23.

템플릿 메타 프로그래밍

  • 템플릿은 일반적으로 컴파일 타임에 결정된다. 이러한 것을 활용한 것이 템플릿 메타프로그래밍이다..

  • 메타 템플릿은 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을 사용하면서, 간단해졌다..