C++ template metaprogramming : concepts, tools and techniques from boost and beyond - Abraham, David (C++ in-depth series / Bjarne Stroustrup, editor, 2005)