1. Item 1: Understand template type deduction.
  2. Item 2: Understand auto type deduction.
  3. Item 3: Understand decltype.
  4. Item 4: Know how to view deduced types.
  5. Item 5: Prefer auto to explicit type declarations.
  6. Item 6: Use the explicitly typed initializer idiom when auto deduces undesired types.
  7. Item 7: Distinguish between () and {} when creating objects.
  8. Item 8: Prefer nullptr to 0 and NULL.
  9. Item 9: Prefer alias declarations to typedefs.
  10. Item 10: Prefer scoped enums to unscoped enums.
  11. Item 11: Prefer deleted functions to private undefined ones.
  12. Item 12: Declare overriding functions override.
  13. Item 13: Prefer const_iterators to iterators.
  14. Item 14: Declare functions noexcept if they won’t emit exceptions.
  15. Item 15: Use constexpr whenever possible.
  16. Item 16: Make const member functions thread safe.
  17. Item 17: Understand special member function generation.
  18. Item 18: Use std::unique_ptr for exclusive-ownership resource management.
  19. Item 19: Use std::shared_ptr for shared-ownership resource management.
  20. Item 20: Use std::weak_ptr for std::shared_ptr like pointers that can dangle.

  21. Item 21: Prefer std::make_unique and std::make_shared to direct use of new.
  22. Item 22: When using the Pimpl Idiom, define special member functions in the implementation file.
  23. Item 23: Understand std::move and std::forward.
  24. Item 24: Distinguish universal references from rvalue references.
  25. Item 25: Use std::move on rvalue references, std::forward on universal references.
  26. Item 26: Avoid overloading on universal references.
  27. Item 27: Familiarize yourself with alternatives to overloading on universal references.
  28. Item 28: Understand reference collapsing.
  29. Item 29: Assume that move operations are not present, not cheap, and not used.
  30. Item 30: Familiarize yourself with perfect forwarding failure cases.
  31. Item 31: Avoid default capture modes.
  32. Item 32: Use init capture to move objects into closures.
  33. Item 33: Use decltype on auto&& parameters to std::forward them.
  34. Item 34: Prefer lambdas to std::bind.
  35. Item 35: Prefer task-based programming to thread-based.
  36. Item 36: Specify std::launch::async if asynchronicity is essential.
  37. Item 37: Make std::threads unjoinable on all paths.
  38. Item 38: Be aware of varying thread handle destructor behavior.
  39. Item 39: Consider void futures for one-shot event communication.
  40. Item 40: Use std::atomic for concurrency, volatile for special memory.

  41. Item 41: Consider pass by value for copyable parameters that are cheap to move and always copied.
  42. Item 42: Consider emplacement instead of insertion.

Effective Modern C++ 42 Specific Ways to Improve Your Use of C++11 and C++14的更多相关文章

  1. 决定干点事儿--翻译一下《effective modern c++》

    写了非常多关于C++11的博客.总是认为不踏实,非常多东西都是东拼西凑.市场上也非常少有C++11的优秀书籍,但幸运的是Meyers老爷子并没有闲赋.为我们带来了<effective moder ...

  2. [C++11] Effective Modern C++ 读书笔记

    本文记录了我读Effective Modern C++时自己的一些理解和心得. item1:模板类型推导 1)reference属性不能通过传值参数传入模板函数.这就意味着如果模板函数需要一个refe ...

  3. Effective Modern C++翻译(1):序言

    /*********************************************************** 关于书: 书是我从网上找到的effective Modern C++的样章,内 ...

  4. 《Effective Modern C++》翻译--简单介绍

    北京时间2016年1月9日10:31:06.正式開始翻译.水平有限,各位看官若有觉得不妥之处,请批评指正. 之前已经有人翻译了前几个条目,有些借鉴出处:http://www.cnblogs.com/m ...

  5. Effective Modern C++:01类型推导

    C++的官方钦定版本,都是以ISO标准被接受的年份命名,分别是C++98,C++03,C++11,C++14,C++17,C++20等.C++11及其后续版本统称为Modern C++. C++11之 ...

  6. Effective Modern C++翻译(2)-条款1:明白模板类型推导

    第一章 类型推导 C++98有一套单一的类型推导的规则:用来推导函数模板,C++11轻微的修改了这些规则并且增加了两个,一个用于auto,一个用于decltype,接着C++14扩展了auto和dec ...

  7. 8 ways to improve ASP.NET Web API performance

    ASP.NET Web API is a great piece of technology. Writing Web API is so easy that many developers don’ ...

  8. 《Effective Modern C++》翻译--条款4:了解怎样查看推导出的类型

    条款4:了解怎样查看推导出的类型 那些想要了解编译器怎样推导出的类型的人通常分为两个阵营. 第一种阵营是实用主义者.他们的动力通常来自于编敲代码过程中(比如他们还在调试解决中),他们利用编译器进行寻找 ...

  9. Ten ways to improve the performance of large tables in MySQL--转载

    原文地址:http://www.tocker.ca/2013/10/24/improving-the-performance-of-large-tables-in-mysql.html Today I ...

随机推荐

  1. 【原】iOS学习之PINCache第三方缓存框架

    在项目中总是需要缓存一些网络请求数据以减轻服务器压力,业内也有许多优秀的开源的解决方案.通常的缓存方案都是由内存缓存和磁盘缓存组成的,内存缓存速度快容量小,磁盘缓存容量大速度慢可持久化. 1.PINC ...

  2. python基础之初始python

    初始python之基础一 一.Python 介绍 1.python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发 ...

  3. 基于shell脚本比较数字加减乘除

    让用户输入两个数来比较他们的大小 先用touch命令新建一个2.sh文件 在用vi进入i进入编辑状态 输入 保存后检查

  4. Javascript的自执行函数

    自执行函数其实也就是"立即执行的函数",它有四个特点:提高性能.利于压缩.避免冲突.依赖加载: 1.减少作用域查找 JS代码: // Anonymous function that ...

  5. 不能链接云服务器mysql

    如果报host'' 不允许连接MySQL服务器  1130 错误的话如果你的3306端口打开了,也把user 里的host改为% 还是不行的话,请记得更改 站点域名设置,和你服务器相同,端口一致.

  6. The Solution of UESTC 2016 Summer Training #1 Div.2 Problem C

    Link http://acm.hust.edu.cn/vjudge/contest/121539#problem/C Description standard input/output After ...

  7. DM 多路径存储

    DM多路径存储 系统环境:RHEL5.4 small install  selinux and iptables disabled主机规划:主机网卡软件station133eth0: 192.168. ...

  8. 使用LinqToExcel读取Excel

    我们读取和写入Excel 经常使用NPOI工具,如果我们的需求只是需要读取Excel,可以考虑使用LinqToExcel这个组件.这个组件用起来简单,实用,操作方便,而且结合了Linq的查询特性,ex ...

  9. ASP.NET MVC 防止 CSRF 的方法

    MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request forgery)攻击的一个措施,它跟XSS(XSS又叫CSS:Cross ...

  10. 浅谈算法和数据结构: 十 平衡查找树之B树

    前面讲解了平衡查找树中的2-3树以及其实现红黑树.2-3树种,一个节点最多有2个key,而红黑树则使用染色的方式来标识这两个key. 维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种 ...