Modern Effective C++
1.型别推导
1.1 ParamType是个指针或引用,但不是万能引用
1.2 ParamType是个万能引用
1.3 ParamType既非指针也非引用
1.4 数组实参
A.按值形参
B.按引用传递形参
1.5 函数实参
2. auto型别推导
3.decltype
4.掌握查看型别推导结果的方法
5.auto
6. 当auto推导的型别不符合要求时,使用带显示型别的初始化物习惯用法
7. 在创建对象时注意区分()和{}
8.优先选用nullptr,而非0或NULL
9. 优先选用别名声明,而非typedef
10.优先选用限定作用域的枚举类别,而非不限作用域的枚举型别
11.优先选用删除函数,而非 private未定义函数
12.为意在改写的函数添加override声明
13.优先选用const_iterator,而非iterator
14.只要函数不会发射异常,就为其加上noexcept声明
15.只要有可能使用constexpr,就使用它
16.保证const成员函数的线程安全性
17.理解特种成员函数的生成机制
18.使用std::unique_ptr管理具备专属所有权的资源
19.使用std::shared_ptr管理具备共享所有权的资源
20.对于类似std::shared_ptr但有可能空悬的指针使用std::weak_ptr
21.优先选用std::make_unique和std::make_shared,而非直接使用new
22.使用Pimpl习惯用法时,将特殊成员函数的定义放到实现文件中
23.理解std::move和std::forward
相关知识点:
24.区分万能引用和右值引用
25.针对右值引用实施std::move,针对万能引用实施std::forward
26.避免依万能引用型别进行重载
27.熟悉依万能引用型别进行重载的替代方案
28.理解引用折叠
29.假定移动操作不存在、成本高、未使用
30.熟悉完美转发的失败情形
31.避免默认捕获模式
32.使用初始化捕获将对象移入闭包
33.对auto&&型别的形参使用decltype,以std::forward之
34.优先选用lambda式了,而非std::bind
35.优先选用基于任务而非基于线程的程序设计
36.如果异步是必要的,则指定std::launch::async
37.使用std::thread型别对象在所有路径皆不可联结
38.对变化多端的线程句柄析构函数行为保持关注
39.考虑针对一次性事件通信使用以void为模板型别实参的期值
40. 对并发使用std::atomic,对特种内存使用volatile
41.针对可复制的形参,在移动成本低并且一定会被复制的前提下,考虑将其按值传递
42.考虑置入而非插入
Modern Effective C++相关推荐
- Item 14: 如果函数不会抛出异常就把它们声明为noexcept
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 在C++98中,异常规范(exception specificat ...
- Item 16: 让const成员函数做到线程安全
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...
- item 12: 把重写函数声明为“override”的
本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 C++中的面向对象编程总是围绕着类,继承,以及虚函数.这个世界中, ...
- c语言null和nullptr,nullptr和NULL
nullptr是c++11中的关键字,表示空指针 要区分nullptr和NULL,首先要明白NULL的含义: NULL是一个宏定义,在c和c++中的定义不同,c中NULL为(void*)0,而c++中 ...
- 《Effective Modern C++》笔记
文章目录 绪论 第1章 型别推导 条款1:理解模板类型推导 情况1:ParamType 是个指针或引用,但不是万能引用 情况2:ParamType是万能引用 情况3:ParamType既非指针也非引用 ...
- [读书笔记]《Effective Modern C++》—— 移步现代 C++
文章目录 前言 item7:区别使用 () 和 {} 创建对象 item8:优先考虑使用 nullptr 而不是 0 或者 NULL item9:优先考虑别名声明而非 typedefs item10: ...
- Effective Modern C++ 纯人工翻译,持续更新,不为博你眼球,旨在自我提升
文章目录 Effective.Modern.C++ 关键词翻译 Argument Parameter ParamType expr .expression type deduction trailin ...
- Effective Modern C++ 第三章第二节,C++新特性
Chapter 3-2: Moving to Modern C++ Item 11: Prefer deleted functions to private undefined ones C++中,有 ...
- Effective Modern C++ 第三章第一节,C++新特性:初始化、nullptr、alias别名、enum
Chapter 3 part 1, Moving to Modern C++ Item 7: Distinguish between () and {} when creating objects 几 ...
- 《Effective Modern C++》读书笔记
Tags: c++ Note:为避免各种侵权问题,本文并没有复制原书任意文字(代码除外,作者已经声明代码可以被使用).需要原书完整中文翻译的读者请等待官方译本的发布. 正文 为了让本文更加清晰,依然还 ...
最新文章
- 网关拓扑结构与功能设计归纳
- 人工智能算法模型必会之——正则化方法综述
- 从建好到用好,阿里云原生微服务生态的演进
- python画圆形螺旋线_这个Python项目,一秒生成可爱像素风图片
- 激进or务实?HEVC、AV1 和私有Codecs现状
- seo超强外部链接、内部链接技巧
- window.showModalDialog模态对话框 值回传 TreeView无刷新
- 嵌入式系统——文件系统
- 通达OA11.2漏洞复现
- python爬虫教程下载-Python网络爬虫从入门到精通 PDF 下载
- 关于菜鸡学习时服务器购买的注意点
- 【C语言】简易版_飞机小游戏
- 本地颁发 SSL 证书,并开启 https 服务调试
- 英特尔发布第三代全新可扩展处理器,加速5G网络转型
- win7 喇叭图标不见了
- 合适的教育ERP管理系统,可让你省去很多麻烦
- 系统调用(Linux)
- Mybatis(1)——Mybatis Generator自动生成代码
- java图片加气泡文字,动态图片加气泡文字 微信动态图片加文字教程
- 【半导体物理】笔记 柴常春 西安电子科技大学 更新ing...