Template Metaprogramming with C++: Learn everything about C++ templates and unlock the power of template metaprogramming - Bancila (IEEE, 2003)