出版社: 中国电力出版社
副标题: 42招独家技巧助您改善C++11和C++14的高效用法
原作名: Effective Modern C++
译者: 高博
出版年: 2018-4-23
页数: 290
定价: 99.00元
装帧: 平装
丛书: O'Reilly动物系列(中译本)
ISBN: 9787519817749
内容简介 · · · · · ·
想要彻底理解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++的软件开发中作出哪些...
想要彻底理解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++的软件开发中作出哪些修订
《Effective Modern C++》沿用了Scott Meyers早期作品中业已证明的基于指导原则和实例驱动的格式,但介绍的是全新材料。本书是所有C++软件开发工程师的必读之选。
Effective Modern C++(中文版)的创作者
· · · · · ·
-
Scott Meyers 作者
-
高博 译者
作者简介 · · · · · ·
20多年来,Scott Meyers的“Effective C++从书”(包括《Effective C++》、《More Effecitve C++》和《Effective STL》)已经为C++程序设计指南的业界设立标杆。他清晰明了引人入胜的、对复杂技术材料进行条分缕析的阐释为他赢得了世界范围内的称誉,也使他成为一名广受欢迎的培训师、咨询顾问和会议讲师。他拥有布朗大学计算机科学专业的博士学位。
目录 · · · · · ·
译者序
对本书的称许
出版商声明
致谢
绪论
术语和惯例
提交缺陷报告和改进建议
型别推导
条款1:理解模板型别推导
条款2:理解auto型别推导
条款3:理解decltype
条款4:掌握查看型别推导结果的方法
auto
条款5:优先选用auto,而非显式型别声明
条款6:当auto推导的型别不符合要求时,使用带显式型别的初始化物习惯用法
转向现代C++
条款7:在创建对象时注意区分()和{}
条款8:优先选用nullptr,而非0或NULL
条款9:优先选用别名声明,而非typedef
条款10:优先选用限定作用域的枚举型别,而非不限作用域的枚举型别
条款11:优先选用删除函数,而非private未定义函数
条款12:为意在改写的函数添加override声明
条款13:优先选用const_iterator,而非iterator
条款14:只要函数不会发射异常,就为其加上noexcept声明
条款15:只要有可能使用constexpr,就使用它
条款16:保证const成员函数的线程安全性
条款17:理解特种成员函数的生成机制
智能指针
条款18:使用std::unique_ptr管理具备专属所有权的资源
条款19:使用std::shared_ptr管理具备共享所有权的资源
条款20:对于类似于std::shared_ptr、但有可能空悬的指针使用std::weak_ptr
条款21:优先选用std::make_unique和std::make_shared,而非直接使用new
条款22:使用Pimpl习惯用法时,将特殊成员函数的定义放到实现文件中
右值引用、移动语义和完美转发
条款23:理解std::move和std::forward
条款24:区分万能引用和右值引用
条款25:针对右值引用实施std::move,针对万能引用实施std::forward
条款26:避免依万能引用型别进行重载
条款27:熟悉依万能引用型别进行重载的替代方案
条款28:理解引用折叠
条款29:假定移动操作不存在、成本高、未使用
条款30:熟悉完美转发的失败情形
lambda表达式
条款31:避免默认捕获模式
条款32:使用初始化捕获将对象移入闭包
条款33:对auto&&型别的形参使用decltype,以std::forward之
条款34:优先选用lambda式,而非std::bind
并发API
条款35:优先选用基于任务而非基于线程的程序设计
条款36:如果异步是必要的,则指定std::launch::async
条款37:使std::thread型别对象在所有路径皆不可联结
条款38:对变化多端的线程句柄析构函数行为保持关注
条款39:考虑针对一次性事件通信使用以void为模板型别实参的期值
条款40:对并发使用std::atomic,对特种内存使用volatile
微调
条款41:针对可复制的形参,在移动成本低并且一定会被复制的前提下,考虑将其按值传递
条款42:考虑置入而非插入
作者简介
题记
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
......create softerware that's correct efficient maintainable portable (查看原文) —— 引自第1页 -
C++98 had a single set of rules for type deduction: the one for function templates. C++11 modifies that ruleset a bit and add two more, one for auto and one for decltype. C++14 then extends the usage contexts in which auto and decltype may be employed. (查看原文) —— 引自第9页
> 全部原文摘录
丛书信息
· · · · · ·
喜欢读"Effective Modern C++(中文版)"的人也喜欢的电子书 · · · · · ·
喜欢读"Effective Modern C++(中文版)"的人也喜欢 · · · · · ·
-
- Linux多线程服务端编程 8.9
-
- 高级C/C++编译技术 7.3
-
- CMake Cookbook 8.9
-
- STL源码剖析 8.7
-
- C++编程规范 8.8
-
- 深入理解C++11 7.7
-
- C++服务器开发精髓 7.6
Effective Modern C++(中文版)的书评 · · · · · · ( 全部 9 条 )

对“最佳实践”的一些吐槽

> 更多书评 9篇
论坛 · · · · · ·
求此书pdf | 来自潘达守护者🐼 | 2020-05-28 14:09:19 | |
关于万能引用的一个问题 | 来自merrilylive | 2020-01-11 00:30:43 |
这本书的其他版本 · · · · · · ( 全部3 )
-
O'Reilly Media (2014)9.5分 427人读过
-
东南大学出版社 (2015)9.6分 31人读过
以下书单推荐 · · · · · · ( 全部 )
- C/C++从入门到进阶必修书籍 (高博)
- 高博出版作品集 (高博)
- C++推荐书单 (凌杰)
- 编程语言大观 (𝕾𝖚𝖓)
- T (dhcn)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有764人想读,手里有一本闲着?
订阅关于Effective Modern C++(中文版)的评论:
feed: rss 2.0
1 有用 虾卤 2023-11-04 15:41:03 上海
主要介绍了c++ 11、14 一些特性使用的注意事项,对新特性不了解的同学建议看一下,写的不错,有帮助。 但这本书存在两个问题,1. 翻译的拉胯,读起来吃力。文中很多编程名词,的确不好翻译翻译,比如"提领"。 2. 某些技巧太细节偏门,实际开发中难以遇到,看过就忘,需要读者选择性吸取。
3 有用 沙迦 2020-03-10 13:33:51
一贯严谨的风格,获益良多。给作者五星,但是翻译不怎么样。部分名词如“期值”,没有多线程经验的人直接缴械。最后两章似乎翻译得最匆忙,排版也不好,扣掉一分是因为翻译。
0 有用 王悟空 2023-06-21 22:16:55 上海
还要看很多遍啊
0 有用 有为 2019-05-29 04:26:55
没看过这本书等于没学过Modern C++
8 有用 杨逸 2019-07-31 21:47:14
两年后再读,又是一番体会。