C++ Templates: The Complete Guide - Vandevoorde, David; Josuttis, Nicolai M.