新書推薦:

《
中产阶级的孩子们:六十年代与文化领导权
》
售價:HK$
107.8

《
谈鬼说神
》
售價:HK$
398.2

《
走出秦制:清末民初六十年(慈禧、奕?、李鸿章、张之洞、袁世凯、康有为、梁启超、宋教仁等对中国前途的思
》
售價:HK$
129.8

《
古典与文明·独尊儒术前夕的思想争锋:汉初“前经学时代”研究
》
售價:HK$
99.0

《
史记 全六册
》
售價:HK$
437.8

《
图解计算机科学数学基础(原书第3版)
》
售價:HK$
130.9

《
柏拉图《理想国》指南(想读《理想国》,一直看不懂?这本书就是你的哲学通关攻略)
》
售價:HK$
87.8

《
你的代谢还好吗:控制“五高”饮食运动法
》
售價:HK$
54.8
|
| 內容簡介: |
理解C++11和C++14可不只是熟悉它们引入的特性 例如,auto类型声明、移动语义、lambda表达式和并行计算支持这么简单。挑战在于学习如何高效应用这些特性——让你的软件正确、有效、易于维护和可移植。这就是这本具有很强实践性的书籍的目的所在。本书描述了如何使用C++11和C++14编写真正伟大的软件——使用现代C++。
《Effective Modern C++改善C++11和C++14的 42个具体做法影印版英文版》遵循久经考验、基于规则和实例驱动的迈耶斯早期书籍的样式,但编写了全新的内容。对于每位现代C++软件的开发者而言,本书都是必读书籍。
|
| 目錄:
|
From the Publisher
Acknowledgments
Introduction
1.Deducing Types
Item 1: Understand template type deduction.
Item 2: Understand auto type deduction.
Item 3: Understand decltype.
Item 4: Know how to view deduced types.
2.auto
Item 5: Prefer auto to explicit type declarations.
Item 6: Use the explicitly typed initializer idiom when auto deduces undesired types.
3.Moving to Modern C++
Item 7: Distinguish between and {} when creating objects.
Item 8: Prefer nullptr to 0 and NULL.
Item 9: Prefer alias declarations to typedefs.
Item 10: Prefer scoped enums to unscoped enuns.
Item 11: Prefer deleted functions to private undefined ones.
Item 12: Declare overriding functions overri.de.
Item 13: Prefer const_iterators to iterators.
Item 14: Declare functions noexcept ifthey won''t emit exceptions.
Item 15: Use constexpr whenever possible.
Item 16: Make const member functions thread safe.
Item 17: Understand special member function generation.
4.Smart Pointers
Item 18: Use std: : unique_ptr for exclusive-ownership resource management.
Item 19: Use std: : shared_ptr for shared-ownership resource management.
Item 20: Use std : :weak_ptr for std : : shared_ptr-like pointers that can dangle.
Item 21: Prefer std : :make_unique and std : :make_shared to direct use of new.
Item 22: When using the Pimpl Idiom, define special member functions in the implementation file.
5.Rvalue References, Move Semantics, and Perfect Forwarding
Item 23: Understand std : : move and std : : forward.
Item 24: Distinguish universal references from rvalue references.
Item 25: Use std : : move on rvalue references, std : : forward on universal references.
Item 26: Avoid overloading on universal references.
Item 27: Familiarize yourself with alternatives to overloading on universal references.
Item 28: Understand reference collapsing.
Item 29: Assume that move operations are not present, not cheap, and not used.
Item 30: Familiarize yourself with perfect forwarding failure cases.
6.Lambda Expressions
Item 31: Avoid default capture modes.
Item 32: Use init capture to move objects into closures.
Item 33: Use decltype on auto parameters to std: :forward them.
Item 34: Prefer lambdas to std : : bind.
7.The Concurrency API
Item 35: Prefer task-based programming to thread-based.
Item 36: Specify std: :launch: :async ifasynchronicityis essential.
Item 37: Make std : : threads unjoinable on all paths.
Item 38: Be aware of varying thread handle destructor behavior.
Item 39: Consider voi_d futures for one-shot event communication.
Item 40: Use std : : atoni.c for concurrency, volatile for special memory.
8.Tweaks
Item 41: Consider pass by value for copyable parameters that are cheap to move and always copied.
Item 42: Consider emplacement instead of insertion.
Index
|
|