Modern C++
Design
是一部重要的著作。它從根本上展示了
generic patterns(泛型範式)或
pattern templates
(範式模板),並將它們視之為「在
C++
中創造可擴充設計」的一種功能強大的新方法。這種方法結合了
template
和
patterns,你可能未曾想過,但的確存在。如果你的工作涉及
C++
設計和編程,那麼你應該閱讀本書。我極力推薦... ─
Herb Sutter
關於
C++,還有什麼沒被說過的?很多本書證明了這一點。
─
節錄自
John Vlissides
為本書所作的序
在
Modern C++
Design
中,Andrei Alexandrescu
為
C++
程式員開創了一個新天地。展現非凡創造力和精湛編程技藝的同時,Alexandrescu
提供了融合design patterns(設計範式)、
generic programming(泛型編程)、C++
尖端設計技術,幫助程式員撰寫清晰、靈活、高度可復用的程式碼。本書提出
generic components(泛型組件)的概念,這是一種可復用的設計模板(reusable design templates),用來產生規範的
C++
程式碼供編譯器使用。泛型組件提供了從
design
到
code
之間簡易而無縫的過渡,產生出更能表達原始設計意圖的程式碼,並支援設計結構的復用
—
只需更動最少量程式碼。
作者闡釋建造泛型組件所需的
C++
專門技巧和特性,而後針對現實世界中的應用,提供工業強度之泛型組件實作產品。本書對
C++
開發人員日常工作中反復遇到的問題進行了深入的探討,並透過泛型方式實現。內容包括:高度靈活的
policy-based design。Partial template specialization(模板偏特化)。Typelists,一個功能強大、用於型別操控的結構。Visitor﹑Singleton﹑Command﹑Factories…等範式(patterns)。Multi-method engine
針對每一個泛型組件,本書都提出基本問題和設計選擇,最後並實現其泛型解決方案。此外,本書相關網站
http://www.awl.com/cseng/titles/0-201-70431-5
供應書中泛型組件的所有實作品,並提供作者發展的一個免費、可下載的
C++
程式庫
Loki。Loki
幾乎可為任何
C++
專案提供借鑒。