Modern C++ Design: Generic Programming and Design Patterns Applied Andrei Alexandrescu Publisher: Addison-Wesley Professional