[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;
}

위의 예시는 템플릿 메타프로그래밍을 사용하여 팩토리얼을 구현한 것입니다. 컴파일 시간에 각 값에 대한 팩토리얼이 미리 계산되어 실행 시간에 바로 값을 얻을 수 있습니다.

더 많은 정보를 원하시면 아래의 참고 자료를 참고하시기 바랍니다.

참고 자료: