Book description
想要彻底理解C++11和C++14,不可止步于熟悉它们引入的语言特性(例如,auto型别推导、移动语义、lambda表达式,以及并发支持)。挑战在于高效地运用这些特性,从而使你的软件具备正确性、高效率、可维护性和可移植性。这正是本书意欲达成的定位。它描述的正是使用C++11和C++14(即现代C++)来编写真正卓越的软件之道。
涵盖以下主题:
- 大括号初始化、noexcept规格、完美转发,以及智能指针的make函数的优缺点。
- std::move、std::forward、右值引用和万能引用之间的联系。
- 编写整洁、正确,以及高效的lambda表达式的方法。
- std::atomic和volatile有怎样的区别,它们分别用于什么场合,以及它们和C++的并发API有何联系。
- “旧”C++程序设计(即C++98)中的最佳实战要求在现代C++的软件开发中作出哪些修订。
本书沿用了Scott Meyers早期作品中业已证明的基于指导原则和实例驱动的格式,但介绍的是全新材料。本书是所有C++软件开发工程师的必读之选。
Table of contents
- 封面
- 对本书的赞誉
- 版权页
- O'Reilly介绍
- 推荐序
- 译者序
- 目录 (1/2)
- 目录 (2/2)
- 出版商声明
- 致谢
- 绪论
- 第1章 型别推导
- 第2章 auto
-
第3章 转向现代C++
- 条款7:在创建对象时注意区分()和{}
- 条款8:优先选用nullptr,而非0或NULL
- 条款9:优先选用别名声明,而非typedef
- 条款10:优先选用限定作用域的枚举型别,而非不限作用域的枚举型别
- 条款11:优先选用删除函数,而非private未定义函数
- 条款12:为意在改写的函数添加override声明
- 条款13:优先选用const_iterator,而非iterator
- 条款14:只要函数不会发射异常,就为其加上noexcept声明 (1/2)
- 条款14:只要函数不会发射异常,就为其加上noexcept声明 (2/2)
- 条款15:只要有可能使用constexpr,就使用它
- 条款16:保证const成员函数的线程安全性
- 条款17:理解特种成员函数的生成机制
- 第4章 智能指针
- 第5章 右值引用、移动语义和完美转发
- 第6章 lambda表达式
- 第7章 并发API
- 第8章 微调
- 作者介绍
- 封面介绍
Product information
- Title: Effective Modern C++(中文版)
- Author(s):
- Release date: April 2018
- Publisher(s): China Electric Power Press Ltd.
- ISBN: 9787519817749
You might also like
book
云原生:运用容器、函数计算和数据构建下一代应用
开发者们刚开始接触云端服务开发的时候或多或少都会遇到一些障碍。既要学习分布式系统的知识,又要熟悉像容器和函数计算这样的新技术,还要综合运用这些知识来构建云原生应用实在是件令人望而生畏的事情。本书可以帮助你掌握构建云原生应用的方法,比如消息通信、事件通知和DevOps等。 本书介绍了构建现代云原生应用的架构模块。你将学会如何使用微服务、容器、无服务器架构、函数计算等技术,并挑选合适的存储类型,同时考虑可移植性等问题。你会从云原生应用的基础知识开始,一步步地了解设计、开发和运维云原生应用的整个过程。 探讨设计云原生应用所需的技术。 介绍容器和函数计算的区别,并学习它们的适用场景。 有针对性地设计应用来满足数据相关的需求。 学习DevOps的基础知识和一些开发、测试、运维实践。 学习一些构建和管理云原生应用的技巧、方法和实践。 理解构建一个具有可移植性的应用所需的代价,并且学会对需求做出取舍。
book
C++程序设计:原理与实践(基础篇)(原书第2版)
C++之父Bjarne Stroustrup的经典著作《C++程序设计:原理与实践(原书第2版)》基于最新的C++11和C++14,广泛地介绍了程序设计的基本概念和技术,包括类型系统、算术运算、控制结构、错误处理等;介绍了从键盘和文件获取数值和文本数据的方法以及以图形化方式表示数值数据、文本和几何图形;介绍了C++标准库中的容器(如向量、列表、映射)和算法(如排序、查找和内积)的设计和使用。同时还对C++思想和历史进行了详细的讨论,很好地拓宽了读者的视野。为方便读者循序渐进地学习,加上篇幅所限,《C++程序设计:原理与实践(原书第2版)》分为基础篇和进阶篇两册出版,基础篇包括第1~11章、第17~19章和附录A、C,进阶篇包括第12~16章、第20~27章和附录B、D、E。本书是基础篇。
book
C++程序设计语言(第4部分:标准库)(原书第4版)
作为C++语言的发明者和主要维护者,Bjarne Stroustrup在撰写本书时绝不仅仅满足于阐明语法和知识点本身。他试图向读者揭示各个语言功能的设计初衷,以及他对各种制约因素是如何考虑并妥协的。对于大多数读者来说,这种视角新奇而有趣。他们不再只是被动的学习者,在知道了“是什么”和“为什么”之后,还可以大胆地揣测“C++语言接下来该如何继续发展”。不得不说,这是本书与其他C++书籍的最大区别。作者在写作中融入了很多自己的工程实践经验。学习程序设计语言与学习文化课有很大的不同。设计程序的过程是一门艺术,程序语言只是完成艺术作品所需的工具。举个例子来说,由于各种各样的原因,在C++中存在一些语言特性,它们的功能和作用非常类似。那么这些特性之间是何关系?在遇到某类实际问题时应该如何聪明地选择?本书很好地回答了此类问题。
book
C++语言导学(原书第2版)
本书简洁、自成体系,包含C++ 语言大多数主要特性和标准库组件。当然,这些并未深入介绍,而是给予程序员一个有意义的语言概述、一些关键的例子以及起步阶段的实用帮助。本书的目标不是教你如何编程,它也不可能是你精通C++ 的唯一资源。但是,如果你是一名C 或C++ 程序员,希望更加熟悉现在的C++ 语言,或者你是一名精通其他语言的程序员,希望获得有关现代C++ 语言本质和优点的精确描述,本书是最优选择。