Design Patterns:Elements of Reusable Object Oriented Software, by Erich Gamma,Richard Helm,Ralph Johnson,and John Vlissides,Addison Wesley,1995.395pages
• Policy-based design for flexibility • Partial template specialization • Typelists-powerful type manipulation structures • Patterns such as Visitor, Singleton, Command, and Factories