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