http://msimuni.wdfiles.com/local--files/cpp/Template%20metaprogramming.pdf