有电书房店铺主页二维码
有电书房
微信扫描二维码,访问我们的微信店铺

Effective Modern C++(中文版)

89.10
运费: ¥ 5.00-22.00
Effective Modern C++(中文版) 商品图0
Effective Modern C++(中文版) 商品缩略图0

商品详情

书名:Effective Modern C++(中文版)
定价:99.0
ISBN:9787519817749
作者:[美]Scott Meyers(斯科特·迈耶)
出版时间:2018-05

内容提要:
想要彻底理解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 的软件开发中作出哪些修订。

目录:
出版商声明 1 致谢 3 绪论 7 *1章 型别推导 15 条款1:理解模板型别推导 15 条款2:理解auto型别推导 23 条款3:理解decltype 28 条款4:掌握查看型别推导结果的方法 35 *2章 auto 41 条款5:优先选用auto,而非显式型别声明 41 条款6:当auto推导的型别不符合要求时,使用带显式型别的初始化物习惯用法 46 第3章 转向现代C 52 条款7:在创建对象时注意区分()和{} 52 条款8:优先选用nullptr,而非0或NULL 61

出版商声明 1

致谢 3

绪论 7

*1章 型别推导 15

条款1:理解模板型别推导 15

条款2:理解auto型别推导 23

条款3:理解decltype 28

条款4:掌握查看型别推导结果的方法 35

*2章 auto 41

条款5:优先选用auto,而非显式型别声明 41

条款6:当auto推导的型别不符合要求时,使用带显式型别的初始化物习惯用法 46

第3章 转向现代C  52

条款7:在创建对象时注意区分()和{} 52

条款8:优先选用nullptr,而非0或NULL 61

条款9:优先选用别名声明,而非typedef 64

条款10:优先选用限定作用域的枚举型别,而非不限作用域的枚举型别 68

条款11:优先选用删除函数,而非private未定义函数 74

条款12:为意在改写的函数添加override声明 79

条款13:优先选用const_iterator,而非iterator 85

条款14:只要函数不会发射异常,就为其加上noexcept声明 89

条款15:只要有可能使用constexpr,就使用它 95

条款16:保证const成员函数的线程安全性 101

条款17:理解特种成员函数的生成机制 106

第4章 智能指针 113

条款18:使用std::unique_ptr管理具备专属所有权的资源 115

条款19:使用std::shared_ptr管理具备共享所有权的资源 120

条款20:对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr 129

条款21:优先选用std::make_unique和std::make_shared,而非直接使用new 133

条款22:使用Pimpl习惯用法时,将特殊成员函数的定义放到实现文件中 141

第5章 右值引用、移动语义和*美转发 150

条款23:理解std::move和std::forward 151

条款24:区分*能引用和右值引用 156

条款25:针对右值引用实施std::move,针对*能引用实施std::forward 161

条款26:避免依*能引用型别进行重载 169

条款27:熟悉依*能引用型别进行重载的替代方案 175

条款28:理解引用折叠 187

条款29:假定移动操作不存在、成本高、未使用 193

条款30:熟悉*美转发的失败情形 196

第6章 lambda表达式 204

条款31:避免默认捕获模式 205

条款32:使用初始化捕获将对象移入闭包 212

条款33:对auto&&型别的形参使用decltype,以std::forward之 217

条款34:优先选用lambda式,而非std::bind 220

第7章 并发API 228

条款35:优先选用基于任务而非基于线程的程序设计 228

条款36:如果异步是必要的,则指定std::launch::async 232

条款37:使std::thread型别对象在所有路径皆不可联结 236

条款38:对变化多端的线程句柄析构函数行为保持关注 243

条款39:考虑针对一次性事件通信使用以void为模板型别实参的期值 247

条款40:对并发使用std::atomic,对特种内存使用volatile 254

第8章 微调 263

条款41:针对可复制的形参,在移动成本低并且一定会被复制的前提下,考虑将

其按值传递 263

条款42:考虑置入而非插入 273

 

显示全部信息
有电书房店铺主页二维码
有电书房
扫描二维码,访问我们的微信店铺

Effective Modern C++(中文版)

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏