템플릿 메타 프로그래밍
템플릿은 일반적으로 컴파일 타임에 결정된다. 이러한 것을 활용한 것이 템플릿 메타프로그래밍이다..
메타 템플릿은 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을 사용하면서, 간단해졌다..
'c++ > 모던c++' 카테고리의 다른 글
using template, variable template (0) | 2022.05.23 |
---|---|
c++20(concept) (0) | 2022.05.23 |
varidic template (가변인자.. tuple직접구현..) (0) | 2022.05.22 |
c++ 11 가변인자템플릿 varidic template (0) | 2022.04.07 |
전달 참조 forwarding reference (c++17) (0) | 2022.03.29 |