天天看点

《深入理解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+服务器。

继续阅读