C++ Templates: The Complete Guide 2nd Edition