Modern C++ Design is modern in the sense that makes the case for using templates as a means of creating generic library components. The focus on library—as opposed to application—development is refreshing and allows the book to discuss, in quite some depth, the implementation details associated with components such as allocators, smart pointers and singletons.
Divided into two parts the book first presents a collection of tools and techniques, namely policy based design and type lists, which can be used to aid in the development of generic components. In the second part these techniques are used to deliver superior implementations of common idioms and design patterns.
The sample code included throughout the book is of high quality (as would be expected for a book on design patterns). Although standalone examples are uncommon this does not serve to impede understanding. The overall typesetting of the book is reasonable, although it does have something of a ‘word processed’ feel to it. Alexandrescu’s writing style is clear and consistent with sentences flowing together nicely.
Overall, I would recommend the book to anyone looking to further their knowledge of C++. Indeed, even if one has no specific interest in library design, this book still has a lot to offer.