Modern C++ Design: Generic Programming and Design Patterns Applied by Andrei Alexandrescu (Paperback, 2001)