You are here

C++ template metaprogramming

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.

Links

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.