Asi bude nejjednodušší začít příkladem
template<int N> struct Factorial { enum { value = N * Factorial<N-1></n-1>::value }; }; templatestruct Factorial<1> { enum { value = 1 }; }; int i = Factorial<10>::value;
Tento velmi jednoduchý template lze použít k výpočtu faktoriálu během kompilace programu.
Template metaprograms - by Todd Velthuizen
Spirit parser - advanced metaprogramming
Boost - portable C++ libraries
Adobe - Simulated partial Specialization for C++ - pro uživatele Microsoft C++, doufám že už to brzy nebude třeba.