没有合适的资源?快使用搜索试试~ 我知道了~
c++ template(模板)
需积分: 9 41 下载量 191 浏览量
2008-01-25
19:22:48
上传
评论
收藏 2.17MB PDF 举报
温馨提示
试读
325页
对C++的模板技术进行综合的描述...
资源推荐
资源详情
资源评论
㆗文版:《C++Templates全覽》 侯捷/榮耀/姜宏 譯
C++
Template
全覽
全覽全覽
全覽
C++ Templates
- The Complete Guide
David Vandevoorde
Nicolai M. Josuttis
著
侯捷
/
榮耀
/
姜宏
譯
譯序 by 侯捷
C++ Templates - The Complete Guide
i
譯序
by
侯捷
泛型編程(Generic Programming)是繼物件導向(Object Oriented)技術之後,C++ 領域
㆗最被討論和關注的焦點
1
。這樣的關注在 C++ 社群已經持續了數年之久。
談到 C++ 泛型編程,話題離不開 templates
2
,因為它正是實現泛型之關鍵性 C++ 構件。
很多 C++ 經典語言書如《
The C++ Programming Language
》,《
C++ Primer
》和《
Thinking in
C++
》都已經花費大量篇幅介紹 templates。這些書籍幾乎已能滿足以「善用 templates 構
件」為目標的讀者。至於 templates 衍化出來的眾多泛型技術和研發成果,諸如 STL, Loki,
Boost,也都有了針對性各異的經典書籍幫助我們學習,如《
Generic Programming and the
STL
》,《
Effective STL
》, 《
Modern C++ Design
》, 《
The C++ Standard Library
》,《
The Annotated
STL Sources
》,《
The Boost Graph Library
》…。
那麼,在這整個技術主題㆗,還缺什麼嗎?
就我有限的想像力,思及語法面、語意面、應用面、專家建言、前衛發展、程式庫源碼
剖析與技術分析…,幾乎是不缺什麼了。但是㆟蹤稀寥的角落裡,似乎還欠缺
3
:
(1) 諸如 Friend Name Injection, Curiously Recurring Template Pattern, Template Template
Parameters, Member Templates 之類比較罕見的偏鋒。
(2) 諸如 Tuple, Traits Templates, Expression Templates, Template Metaprogramming, Type
Functions 之類比較特殊的設計。
(3) 諸如 Template Argument Deduction, Template Overload Resolution, Looking Up Names in
Templates, Templates Instantiation 之類的底層運作描述。
1
為什麼這個現象沒有發生在其他語言及其所圈圍的技術領域㆗呢?因為其他語言如
Java
和
C#
並不支援如此多采的泛型技術(很主要的㆒個原因是沒有
operator overloading
/
運算子重載
可供搭配)。這種情況可能將有改變,因為這些最受注目的高階語言不約而同㆞往
C++
形式
的泛型編程靠近。
2
template
通常被譯為「模板」,其意義是母模、模具,而不是土木建築工㆞現場用的「板模」。
3
此處列出的眾多術語皆採英文。附錄
D
有㆒份詞彙
/
術語表,其㆗有譯詞及意義解釋。
譯序 by 侯捷
C++ Templates - The Complete Guide
ii
(4) 諸如 One Definition Rule, E
mpty Base Class Optimization
之類的肌理分析。
《
C++ Templates
》彌補了㆖述欠缺!此書亦對大多數書籍談到的 templates 相關議題做了
完善的整理。可以說,就 templates ㆖㆖㆘㆘裡裡外外而言,這本書是百科全書。
㆖述所列都是較為艱澀的主題。㆒般只做應用(或略探學理)的程式員是否需要如此深
刻或如此角落的知識呢?這是見仁見智的個㆟選擇問題。「㆒切以眼前實用為訴求」畢
竟還是㆒種普遍存在的思維。但對高端技術發展而言,底層運作原理和前衛開拓勇氣是
非常重要的。我在《
Modern C++ Design
》譯序㆗對此有過㆒些看法。
關切泛型編程技術的讀者,可能不復陌生本文㆒開始所列的那些經典書籍。我個㆟認為
本書技術層次比較齊近《
Modern C++ Design
》。當然我們都知道,沒有㆒本書可以涵蓋
全世界,亦不會有哪㆒項知識獨家出現於㆒本書㆗。你可以從《
More Effective C++
》獲得
本書第18 章 Expression Templates 和第20 章Smart Pointer 的部分知識,可以從《
Modern C++
Design
》獲得本書第22 章Function Objects and Callbacks 的相關知識和第17 章Metaprograms
的更多知識,以及第 15 章 Policy Classes 的補充知識。你可以在《
The Annotated STL Source
》
㆗看到本書第 15 章 Traits 和第 22 章 Functors、Binder 實作於 STL 的實際面貌。你也可
以從《
Inside the C++ Object Model
》及前述㆔本 C++ 語言書㆗看到 template 相關構件的討
論。本書帶有大量交叉參考,對讀者的旁徵博引是㆒個助力。
本書(㆗文版)由㆔㆟合譯。北京姜宏先生負責前半部(㆒㆓篇),南京榮耀先生負責
後半部(㆔㆕篇),新竹侯捷總覽總製全書。本書的高品質十分得力於榮耀、姜宏兩位
的技術實力。我們㆔㆟在網絡㆖做了許多溝通、討論、檢閱、覆閱、再覆閱。㆗文版附
加大量譯註,包括多種編譯平台㆖的實測結果,並將定稿前之所有英文版勘誤修正於紙
面。感謝兩位夥伴的實踐精神與熱忱,這是㆒次愉快而極高品質的合作。
關於行文風格,由於文字及版面工作由我總攬終定,所以沿襲侯捷㆒貫的用語風格和㆗
英術語並陳的習慣。㆗英並陳無法全面,亦難在此簡述概貌,甚至並不全書㆒致(例如
某些場合使用"pointer"某些場合使用"指標",某些場合使用"object"某些場合使用"物件",
視㆖㆘語感和前後詞性平衡而定)。請讀者諒解㆒個事實:本書許多術語並無「㆗文為
主英文為輔」的前提;在我所選定的某些術語㆖,㆗英並重。惟㆒的基準是:與 template
相關的術語近乎全部保留英文(亦時而並陳㆗文)。附錄 D 列有㆒份語彙
/
術語表,建議
讀者先行瀏覽,不僅得以率先綜覽全書術語,亦可對㆗文譯名有㆒個梗概認識。
特別要說明的是,英文版的 ordinary 或 regular(例如 ordinary pointer, regular class, regular
function),㆗文版譯為「常規的」或「㆒般的」,技術㆖意指 non-template。
最後,容我感性表白。持續澆灌大量心血於㆒系列 C++ Templates, Generic Programming,
STL 的學習、研究、寫作、翻譯達 5,6 年之久,此刻我很開心以這本書做為終結。
侯捷
2004/01/08, 新竹
jjhou@jjhou.com
(電子郵件)
; http://www.jjhou.com
(繁體網站)
; http://jjhou.csdn.net
(簡體網站)
剩余324页未读,继续阅读
资源评论
trolly
- 粉丝: 0
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功