《深入理解C++11:C++ 11新特性解析与应用》——1.5 本书的约定

简介: 本节书摘来自华章计算机《深入理解C++11:C++ 11新特性解析与应用》一书中的第1章,第1.5节,作者 IBM XL编译器中国开发团队,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 本书的约定

1.5.1 关于一些术语的翻译

在C++11标准中,我们会涉及很多已有的或新建的术语。在本书中,这些术语我们会尽量翻译,但不求过度翻译。

在已有翻译且翻译意义已经被广为接受的情况下,我们会使用已有的翻译词汇。比如说将class翻译为“类”,或者将template翻译为“模板”。这样翻译已经为中文读者广为接受,本书则会沿用这样的译法。

而已有翻译但是意义并没有被广为接受的情况下,本书中则会考虑保留英文原文。比如说将“URL”翻译为“统一资源定址器”在我们看来就是一种典型的不良情况。通常将这样的术语翻译为中文会阻碍读者的理解。而大多数能够阅读本书的读者也会具有基本的英文阅读能力和一些常识性的计算机知识,因此本书将保留原文,以期望能够帮助读者更好地理解涉及术语的部分。

对于还没有广泛被认同的中文翻译的术语,我们会采用审慎的态度。一些时候,如果英文确实有利于理解,我们会尝试以注释的方式提供一个中文的解释,而在文中保持英文。如果翻译成中文非常利于理解,则会提供一个中文的翻译,在注释中留下英文。

1.5.2 关于代码中的注释

在本书中,如果可能我们会将一些形如cout、 printf打印至标准输出/错误的内容放在代码的注释中,从读书的经验来看,我们认为这样是最方便阅读的。比如:

int a = 2012;
cout << "hello, world" << endl;      // hello, world
cout << a << “ is doomed" << endl; // 2012 is doomed

同时,一些关键的、有助于读者理解代码的解释也会放在注释中。在通常情况下,注释中有了打印结果的语句不会再有其他的代码解释。如果有,我们将会以逗号将其分开。比如:

cout << "hello world" << endl;    // hello world, 打印"hello world"

1.5.3 关于本书中的代码示例与实验平台

在本书的编写中,我们一共使用了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+服务器。

相关文章
|
4天前
|
Java
并发编程之线程池的应用以及一些小细节的详细解析
并发编程之线程池的应用以及一些小细节的详细解析
17 0
|
18天前
|
存储 C++ 容器
C++STL(标准模板库)处理学习应用案例
【4月更文挑战第8天】使用C++ STL,通过`std:vector`存储整数数组 `{5, 3, 1, 4, 2}`,然后利用`std::sort`进行排序,输出排序后序列:`std:vector<int> numbers; numbers = {5, 3, 1, 4, 2}; std:sort(numbers.begin(), numbers.end()); for (int number : numbers) { std::cout << number << " "; }`
19 2
|
1天前
|
C++
C++:深度解析与实战应用
C++:深度解析与实战应用
7 1
|
1天前
|
安全 vr&ar C++
C++:编程语言的演变、应用与最佳实践
C++:编程语言的演变、应用与最佳实践
|
1天前
|
大数据 图形学 云计算
EDA设计:技术深度解析与实战代码应用
EDA设计:技术深度解析与实战代码应用
|
9天前
|
Java API 数据库
深入解析:使用JPA进行Java对象关系映射的实践与应用
【4月更文挑战第17天】Java Persistence API (JPA) 是Java EE中的ORM规范,简化数据库操作,让开发者以面向对象方式处理数据,提高效率和代码可读性。它定义了Java对象与数据库表的映射,通过@Entity等注解标记实体类,如User类映射到users表。JPA提供持久化上下文和EntityManager,管理对象生命周期,支持Criteria API和JPQL进行数据库查询。同时,JPA包含事务管理功能,保证数据一致性。使用JPA能降低开发复杂性,但需根据项目需求灵活应用,结合框架如Spring Data JPA,进一步提升开发便捷性。
|
13天前
|
SQL API 数据库
Python中的SQLAlchemy框架:深度解析与实战应用
【4月更文挑战第13天】在Python的众多ORM(对象关系映射)框架中,SQLAlchemy以其功能强大、灵活性和易扩展性脱颖而出,成为许多开发者首选的数据库操作工具。本文将深入探讨SQLAlchemy的核心概念、功能特点以及实战应用,帮助读者更好地理解和使用这一框架。
|
14天前
|
机器学习/深度学习 分布式计算 BI
Flink实时流处理框架原理与应用:面试经验与必备知识点解析
【4月更文挑战第9天】本文详尽探讨了Flink实时流处理框架的原理,包括运行时架构、数据流模型、状态管理和容错机制、资源调度与优化以及与外部系统的集成。此外,还介绍了Flink在实时数据管道、分析、数仓与BI、机器学习等领域的应用实践。同时,文章提供了面试经验与常见问题解析,如Flink与其他系统的对比、实际项目挑战及解决方案,并展望了Flink的未来发展趋势。附带Java DataStream API代码样例,为学习和面试准备提供了实用素材。
37 0
|
17天前
|
JavaScript API UED
Vue3.0新特性解析与实战:Composition API、Teleport与Suspense
【4月更文挑战第6天】Vue3.0引入了颠覆性的Composition API,通过函数式方法提升代码可读性和复用性,例如`setup()`、`ref`等,便于逻辑模块化。实战中,自定义的`useUser`函数可在多个组件中共享用户信息逻辑。另外,Teleport允许组件渲染到DOM特定位置,解决模态框等场景的上下文问题。再者,Suspense提供异步组件加载的延迟渲染,使用fallback内容改善用户体验。这些新特性显著优化了开发和性能,适应现代Web需求。
19 0
|
18天前
|
程序员 C++
C++语言模板学习应用案例
C++模板实现通用代码,以适应多种数据类型。示例展示了一个计算两数之和的模板函数`add&lt;T&gt;`,可处理整数和浮点数。在`main`函数中,展示了对`add`模板的调用,分别计算整数和浮点数的和,输出结果。
12 2

热门文章

最新文章

推荐镜像

更多