Modern C++ Design: Generic Progeamming and Design Patterns Applied - Andrei Alexandrescu (Pearson Education,Inc., 2001)