Effective Modern C++ 42 Specific Ways to Improve Your Use of C++11 and C++14
- Item 1: Understand template type deduction.
- Item 2: Understand auto type deduction.
- Item 3: Understand decltype.
- Item 4: Know how to view deduced types.
- Item 5: Prefer auto to explicit type declarations.
- Item 6: Use the explicitly typed initializer idiom when auto deduces undesired types.
- 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 enums.
- Item 11: Prefer deleted functions to private undefined ones.
- Item 12: Declare overriding functions override.
- Item 13: Prefer const_iterators to iterators.
- Item 14: Declare functions noexcept if they 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.
- 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.
- 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.
- 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.
- Item 35: Prefer task-based programming to thread-based.
- Item 36: Specify std::launch::async if asynchronicity is essential.
- Item 37: Make std::threads unjoinable on all paths.
- Item 38: Be aware of varying thread handle destructor behavior.
- Item 39: Consider void futures for one-shot event communication.
- Item 40: Use std::atomic for concurrency, volatile for special memory.
- Item 41: Consider pass by value for copyable parameters that are cheap to move and always copied.
- Item 42: Consider emplacement instead of insertion.
Effective Modern C++ 42 Specific Ways to Improve Your Use of C++11 and C++14的更多相关文章
- 决定干点事儿--翻译一下《effective modern c++》
写了非常多关于C++11的博客.总是认为不踏实,非常多东西都是东拼西凑.市场上也非常少有C++11的优秀书籍,但幸运的是Meyers老爷子并没有闲赋.为我们带来了<effective moder ...
- [C++11] Effective Modern C++ 读书笔记
本文记录了我读Effective Modern C++时自己的一些理解和心得. item1:模板类型推导 1)reference属性不能通过传值参数传入模板函数.这就意味着如果模板函数需要一个refe ...
- Effective Modern C++翻译(1):序言
/*********************************************************** 关于书: 书是我从网上找到的effective Modern C++的样章,内 ...
- 《Effective Modern C++》翻译--简单介绍
北京时间2016年1月9日10:31:06.正式開始翻译.水平有限,各位看官若有觉得不妥之处,请批评指正. 之前已经有人翻译了前几个条目,有些借鉴出处:http://www.cnblogs.com/m ...
- Effective Modern C++:01类型推导
C++的官方钦定版本,都是以ISO标准被接受的年份命名,分别是C++98,C++03,C++11,C++14,C++17,C++20等.C++11及其后续版本统称为Modern C++. C++11之 ...
- Effective Modern C++翻译(2)-条款1:明白模板类型推导
第一章 类型推导 C++98有一套单一的类型推导的规则:用来推导函数模板,C++11轻微的修改了这些规则并且增加了两个,一个用于auto,一个用于decltype,接着C++14扩展了auto和dec ...
- 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’ ...
- 《Effective Modern C++》翻译--条款4:了解怎样查看推导出的类型
条款4:了解怎样查看推导出的类型 那些想要了解编译器怎样推导出的类型的人通常分为两个阵营. 第一种阵营是实用主义者.他们的动力通常来自于编敲代码过程中(比如他们还在调试解决中),他们利用编译器进行寻找 ...
- 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 ...
随机推荐
- CentOS6.5的vsftp搭建流程(一)
前几次搭建FTP都失败了,不是登陆不了,就是目录没有权限.现在终于摸索出了靠谱的操作流程,分享之~ 1. 查看是否安装了vsftpd,未安装则安装 [root@iZ283tian2dZ /]# rpm ...
- Python for Infomatics 第13章 网页服务四(译)
这几天因为其他事务,打断了自己的学习计划,今天继续我的翻译,避免又中途而废. 注:文章原文为Dr. Charles Severance 的 <Python for Informatics> ...
- LintCode 78:Longest Common Prefix
public class Solution { /** * @param strs: A list of strings * @return: The longest common prefix ...
- CF-补题1
CF-补题1 1.CodeForces 735C 题意:n个人淘汰赛,两个人可以比赛的条件是:两人打过的场数之差绝对值<2.求冠军最多可以打多少场. 总结:看了题解,转换一下思路.求n个 ...
- 如何去掉dede列表推荐时标题被加粗
dede在列表推荐文章默认为加粗不清楚的可以看图: 那个加黑的是默认的.如果你不想要被加黑,可以做如下改动.在include里找到文件:arc.listview.class.php查找并删除(注释掉也 ...
- php 迭代器使用
/** * 执行入口 * @author tianyunchong * Time: 4:48 pm * @return null */ public function run() { /** 遍历下所 ...
- 使用SQL Server 2008 维护计划(图解)
使用Sql Server 2008的维护计划可以实现自动备份数据库,并自动删除过期备份的功能. 一.环境 OS: Microsoft Windows Server 2003 R2 soft:Micro ...
- java反射技术详解
反射: 其实就是动态的从内存加载一个指定的类,并获取该类中的所有的内容. 反射的好处:大大的增强了程序的扩展性. 反射的基本步骤: 1. 获得Class对象,就是获取到指定的名称的字节码文件对象. 2 ...
- Daily Scrum02 12.14
大家已经被各种作业折磨得体无完肤了,但是大家还挤出时间完成每天的软件工作啊…… 坚持就是胜利! Member 任务进度 下一步工作 吴文会 调试QuerySetting类函数 调试QuerySetti ...
- spring hibernate4 c3p0连接池配置
c3p0-0.9.1.2.jar,c3p0-oracle-thin-extras-0.9.1.2.jar,点此下载 <bean id="dataSource" class=& ...