[c++] 템플릿 메타프로그래밍
C++에서는 템플릿을 통해 제네릭 프로그래밍을 할 수 있고, 컴파일 시간에 코드를 생성하여 실행 시간 성능을 향상시킬 수 있습니다. 이를 통해 코드의 재사용성을 높일 수 있고, 코드를 보다 유연하게 작성할 수 있게 됩니다.
template <int N>
struct Factorial {
static const int value = N * Factorial<N - 1>::value;
};
template <>
struct Factorial<0> {
static const int value = 1;
};
int main() {
std::cout << Factorial<5>::value << std::endl; // 120
return 0;
}
위의 예시는 템플릿 메타프로그래밍을 사용하여 팩토리얼을 구현한 것입니다. 컴파일 시간에 각 값에 대한 팩토리얼이 미리 계산되어 실행 시간에 바로 값을 얻을 수 있습니다.
더 많은 정보를 원하시면 아래의 참고 자료를 참고하시기 바랍니다.
참고 자료:
- C++ 템플릿 메타프로그래밍: https://en.cppreference.com/w/cpp/language/meta_programming