天天看點

《深入了解C++11:C++ 11新特性解析與應用》——1.5 本書的約定

在c++11标準中,我們會涉及很多已有的或建立的術語。在本書中,這些術語我們會盡量翻譯,但不求過度翻譯。

在已有翻譯且翻譯意義已經被廣為接受的情況下,我們會使用已有的翻譯詞彙。比如說将class翻譯為“類”,或者将template翻譯為“模闆”。這樣翻譯已經為中文讀者廣為接受,本書則會沿用這樣的譯法。

而已有翻譯但是意義并沒有被廣為接受的情況下,本書中則會考慮保留英文原文。比如說将“url”翻譯為“統一資源定址器”在我們看來就是一種典型的不良情況。通常将這樣的術語翻譯為中文會阻礙讀者的了解。而大多數能夠閱讀本書的讀者也會具有基本的英文閱讀能力和一些常識性的計算機知識,是以本書将保留原文,以期望能夠幫助讀者更好地了解涉及術語的部分。

對于還沒有廣泛被認同的中文翻譯的術語,我們會采用審慎的态度。一些時候,如果英文确實有利于了解,我們會嘗試以注釋的方式提供一個中文的解釋,而在文中保持英文。如果翻譯成中文非常利于了解,則會提供一個中文的翻譯,在注釋中留下英文。

在本書中,如果可能我們會将一些形如cout、 printf列印至标準輸出/錯誤的内容放在代碼的注釋中,從讀書的經驗來看,我們認為這樣是最友善閱讀的。比如:

同時,一些關鍵的、有助于讀者了解代碼的解釋也會放在注釋中。在通常情況下,注釋中有了列印結果的語句不會再有其他的代碼解釋。如果有,我們将會以逗号将其分開。比如:

在本書的編寫中,我們一共使用了3種編譯器對代碼進行編譯,即ibm的xlc++、gnu的g++,以及llvm的clang++。我們使用的這3種編譯器都是開發中的版本,其中xlc++使用的是開發中的版本13,g++使用的是開發中的版本4.8,而clang++則使用的是開發中的版本3.2。

本書的代碼大多數由作者原創,少量使用了c++11标準提案中的案例,以及一些網上資源。由于本書編寫時,還沒有編譯器提供對c++11所有特性的完整支援,是以通常我們都會将使用的編譯器、編譯時采用的編譯選項羅列在代碼處。在本書的代碼中,我們會以g++編譯為主,但這并不意味着其他編譯器無法編譯通過這些代碼示例。從我們現在看到的結果而言,使用相同特性的代碼,編譯器的支援往往不存在很大的個體差别(這也是設立标準的意義所在)。而具體的編譯器支援,讀者則可以通過附錄 c獲得相關的資訊。

我們的代碼運作平台之一是一台運作在ibm power伺服器上的suse linux enterprise server 11 (x86_64)的虛拟機(從我們的實驗看來,在該虛拟機上并沒有出現與實體機器不一緻之處,而不同的linux也不會對我們的實驗産生影響)。運作平台之二則是一台運作于suse linux enterprise server 10 sp2 (ppc)的ibm power5+伺服器。

繼續閱讀