템플릿 메타 프로그래밍(TMP) : 컴파일 도중에 실행되는 템플릿 기반의 프로그램을 작성하는 일
- 장점
- 컴파일 타임에 연산이 끝나기 때문에 프로그램 런타임 속도를 향상시킬 수 있음
- 컴파일 타임에 오류를 잡아낼 수 있음
- 단점
- 코드가 복잡해질 수 있음
- 컴파일 타임에 연산하므로 디버깅이 불가능
// 컴파일 타임 팩토리얼 계산
#include <iostream>
using namespace std;
template <int N>
struct Factorial {
static const int result = N * Factorial<N - 1>::result;
};
// 템플릿 특수화를 통해 재귀적 구조가 끝날 수 있도록
template <>
struct Factorial<1> {
static const int result = 1;
};
int main() {
std::cout << "6! = 1*2*3*4*5*6 = " << Factorial<6>::result << endl;
}
'C++' 카테고리의 다른 글
C++ 빌드 과정 (0) | 2024.08.17 |
---|---|
C++ STL (0) | 2024.08.17 |
C++ 자료형 크기 및 범위 (0) | 2024.07.25 |
C++ 가변 인자 템플릿 (0) | 2024.07.07 |
C++ 템플릿 기초 (0) | 2024.06.30 |