정적 메타 프로그래밍 (일명 "템플릿 메타 프로그래밍")은 컴파일 시간에 프로그램을 실행할 수있는 훌륭한 C ++ 기술입니다. 이 표준 메타 프로그래밍 예제를 읽 자마자 전구가 머리에서 꺼졌습니다.
#include <iostream>
using namespace std;
template< int n >
struct factorial { enum { ret = factorial< n - 1 >::ret * n }; };
template<>
struct factorial< 0 > { enum { ret = 1 }; };
int main() {
cout << "7! = " << factorial< 7 >::ret << endl; // 5040
return 0;
}
C ++ 정적 메타 프로그래밍에 대해 더 배우고 싶다면 최고의 소스 (책, 웹 사이트, 온라인 코스웨어 등)는 무엇입니까?