Effective Modern C++ 简体中文版

Scott Meyers

出版时间

2018-04-23

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++的软件开发中作出哪些修订

《Effective Modern C++》沿用了Scott Meyers早期作品中业已证明的基于指导原则和实例驱动的格式,但介绍的是全新材料。本书是所有C++软件开发工程师的必读之选。

AI导读
核心看点
  • 系统梳理C++11/14核心特性,涵盖类型推导、智能指针、移动语义等关键语法。
  • 提供42条实战指导原则,帮助开发者写出正确、高效、可维护的现代C++代码。
  • 深入解析右值引用、完美转发及并发API,纠正旧版C++最佳实践中的过时观念。
适合谁读
  • 具备C++98基础,希望系统掌握C++11和C++14新特性的中高级C++开发者。
  • 从事工业级C++软件开发,追求代码性能、安全性及可移植性的工程师。
  • 对C++底层机制感兴趣,愿意深入理解模板推导、内存管理等细节的技术人员。
读前提醒
  • 中文版翻译质量参差不齐,建议配合英文原版对照阅读,以免因术语误译产生困惑。
  • 书中内容较为零碎且细节繁多,建议结合具体项目代码实践,避免读完即忘。
  • 多线程等高级章节难度较大,初学者可先掌握基础特性,再按需深入研读。
读者共识
  • 原著内容极具价值,是C++11/14开发的必读经典,能显著提升代码质量。
  • 中译本口碑较差,存在大量翻译错误和生硬表达,严重影响阅读体验。
  • 知识密度高但易遗忘,需反复阅读并动手编码验证,才能真正内化为技能。

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "......create softerware that's correct efficient maintainable portable"
  • "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."
  • "When users of a complex system are ignorant of how it works, yet happy with what it does, that says a lot about the design of the system. By this measure, template type deduction in C++ is a tremendous success."
  • "The ability to declare references to arrays enables creation of a template that deduces the number of elements that an array contains."
  • "The only real difference between auto and template type deduction is that auto assumes that a braced initializer represents a std::initializer_list, but the template type deduction doesn't."
  • "In C++11, perhaps the primary use for decltype is declaring function templates where the function's return type depends on its parameter types."
  • "The use of "decltype(auto)" is not limited to function return type. I can also be convenient for declaring variables when you want to apply the decltype type deduction rules to the initializing expression."
  • "Employing pass-by-value for objects of an unknown type generally risks the performance hit of unnecessary copying, the behavioral problems of object slicing, and ..."
作者简介
20多年来,Scott Meyers的“Effective C++从书”(包括《Effective C++》、《More Effecitve C++》和《Effective STL》)已经为C++程序设计指南的业界设立标杆。他清晰明了引人入胜的、对复杂技术材料进行条分缕析的阐释为他赢得了世界范围内的称誉,也使他成为一名广受欢迎的培训师、咨询顾问和会议讲师。他拥有布朗大学计算机科学专业的博士学位。
目录
推荐序
译者序
对本书的称许
出版商声明
致谢

显示全部
用户评论
跳过了并发,例子和论证都很严谨,但因此不够精炼
硬着头皮终于看完了,看完以后发现又跟没看差不多。编程语言难道不是为了解决现实中的问题吗?感觉作者沉浸在玩转各种语言偏门的特性中。也想不出这些东西如果不是为了炫技,在实际工作中能用到多少。
没看过这本书等于没学过Modern C++
C++ Primer之后的C++书籍。 看了C++ Primer只知道语法,不知道怎么高效使用,甚至也不知道C++语言或者说C++库的各种版本--TR1、Boost,导致没有很好地体现看了C++ Primer的效果。 我记得之前都没听过std::chrono等等。 除了并发API一章几个条款没有认真看--因为对操作系统和C++并发编程心存畏惧,有待进一步学习,其它章节我都认真看了,虽然仍有几章没有看懂,但是收获良多。要在编程中将这些建议付诸行动,也要多翻翻增强记忆。 翻译可以说是不错了,虽然有些地方太过拗口,并且部分地方感觉有些急躁,总体来说读起来还是不错了。 总之看了C++ Primer之后读这本书会很合适。C++并不简单。
看完感觉编译器好累啊!我也好累啊!某人说他不想再做c++的原因就是面试要准备的东西太多太多了……on the other side,这也能占掉不少时间不是吗!随便扯扯淡一个小时就过去了哈哈哈,换成go,我实在不知道能问些啥……高博的翻译口碑一向是很好的,但是这本实在不怎么样,很多不知所云,得看原文才知道啥意思,还有些根本就翻错了
很好的C++读物,值得读第二遍!
应该是这本,标记到英文版去了哈哈。把模板推导规则放在书本首个条款是多么重要、明智、引人入胜!
书很好。 这个高博我™记住你了,翻译太烂,还有那个go语言程序设计。
讲得很清晰,有一种跟大佬对话的感觉,并且这个大佬还是有备而来
翻译很多地方有点拗口,不过有中文总归还是省点时间
下载
收藏