天天看點

《C++ Templates中文版》導讀

c++ templates中文版

c++真可謂是包羅萬象、博大精深。每個在c++中沉迷多年的愛好者都難免有這樣的感慨:使用c++多年過後,我們往往隻能算是一個熟練的使用者,卻從來不敢給自己冠上“精通c++”的頭銜。難道“精通c++”永遠都是不慚的大言?然而,在學習、使用和研究c++的過程中,我們總是期望能夠向“精通”不斷邁進,并領悟c++語言的精髓。我想,要做到這一點起碼要注意三個方面:一要把握語言發展的脈搏;二要多應用标準技術;三要洞悉标準技術背後的實作細節。做到這些往往能夠事半功倍。

近年來,c++的新發展主要是在gp(泛型程式設計)方面大放異彩:标準庫、boost庫、容器、疊代子、仿函數等都是圍繞着gp不斷呈現出來的,它們代表了現今c++程式設計的特性。而在這種種技術的背後,隐含着一種根深蒂固的共性:模闆技術,處處都是模闆代碼。我們可以說:泛型程式設計本身就是基于模闆的程式設計。也正是模闆的這種編譯期機制,進一步地展現了gp的優越,展現c++高效率的特點,更有助于gp達到與oo并駕齊驅的地位。

使用了多年标準庫等技術之後,每個人都曾經編寫過許許多多模闆代碼,但在每天的重複勞動之餘,很多人卻未能真正洞悉隐藏在模闆背後的實作細節。諸如特化、局部特化、執行個體化、重載解析等編譯器實作機理,相信真正了解的人并不多。這使得我們始終未能真正擺脫我們所使用的特性的束縛,也就無法實作更加符合具體應用的技術與特性。在這種情況下,用起這些特性來總會覺得心裡不踏實。這未免是程式員的一種悲哀。

從前面列出的3個方面來看,本書都能夠解決讀者的疑惑。本書前半部分内容為讀者釋疑解惑,後半部分内容則更加貼近開發者,使所探讨的技術真正發揮其效能。因而,也總能帶給人豁然開朗的感覺,并使你深深體會到作者選材的獨到之處。關于本書内容的全面介紹,請參考第1章,我在此就不再贅述了。

c++程式設計的書籍,現如今已是琳琅滿目、碩果累累。但是對于c++和模闆這個至關重要的領域,即使在未來很長一段時間裡,本書也必定有着不可替代的地位,這一點從亞馬遜的5星級公評和一直位于前列的銷售排名可見一斑。

對于本書的翻譯,我力求做到語言平實無華,期望能以流暢的語句帶給讀者一個輕松的閱讀過程。在近一年的翻譯過程中,我一次又一次地拖延了出版社的計劃,正是為了真正盡到一個譯者的職責,對技術和文字把好關。但“醜媳婦總要見公婆”,這本書也終究還是要和讀者見面,是以我的修潤也隻能告一段落。在閱讀的過程中,如果你有中肯的批評意見,我一定虛心地接受。我也希望能夠就此書的内容與讀者有更多的交流。

<a href="https://yq.aliyun.com/articles/94868/">1.2 本書的整體結構</a>

<a href="https://yq.aliyun.com/articles/94873/">1.3 如何閱讀本書</a>

[1.4 關于程式設計風格的一些說明]()

<a href="https://yq.aliyun.com/articles/94875">1.5 标準和現實</a>

<a href="https://yq.aliyun.com/articles/94877">1.6 代碼例子和更多資訊</a>

<a href="https://yq.aliyun.com/articles/94895">2.3 模闆參數</a>

<a href="https://yq.aliyun.com/articles/94909">2.4 重載函數模闆</a>

繼續閱讀