作者:Andrei Alexandrescu
副书名:Generic Programming and Design Patterns Applied
出版日期:2001-02-13
出版社:Addison Wesley
页数:323
ISBN:9780201704310
文件格式:PDF
Modern C++ Design is an important book. Fundamentally, it demonstrates ‘generic
patterns’ or ‘pattern templates’ as a powerful new way of creating extensible designs in
C++–a new way to combine templates and patterns that you may never have dreamt was
possible, but is. If your work involves C++ design and coding, you should read this book.
Highly recommended.-Herb Sutter
What’s left to say about C++ that hasn’t already been said? Plenty, it turns out.-From the
Foreword by John Vlissides
In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers.
Displaying extraordinary creativity and programming virtuosity, Alexandrescu offers a
cutting-edge approach to design that unites design patterns, generic programming, and
C++, enabling programmers to achieve expressive, flexible, and highly reusable code.
This book introduces the concept of generic components-reusable design templates that
produce boilerplate code for compiler consumption-all within C++. Generic components
enable an easier and more seamless transition from design to application code, generate
code that better expresses the original design intention, and support the reuse of design
structures with minimal recoding.
The author describes the specific C++ techniques and features that are used in building
generic components and goes on to implement industrial strength generic components for
real-world applications. Recurring issues that C++ developers face in their day-to-day
activity are discussed in depth and implemented in a generic way. These include:
• Policy-based design for flexibility
• Partial template specialization
• Typelists-powerful type manipulation structures
• Patterns such as Visitor, Singleton, Command, and Factories
• Multi-method engines
For each generic component, the book presents the fundamental problems and design
options, and finally implements a generic solution.
In addition, an accompanying Web site, http://www.awl.com/cseng/titles/0-201-70431-5,
makes the code implementations available for the generic components in the book and
provides a free, downloadable C++ library, called Loki, created by the author. Loki
provides out-of-the-box functionality for virtually any C++ project.