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++相关推荐

  1. Item 14: 如果函数不会抛出异常就把它们声明为noexcept

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 在C++98中,异常规范(exception specificat ...

  2. Item 16: 让const成员函数做到线程安全

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 如果我们在数学领域里工作,我们可能会发现用一个类来表示多项式会很方 ...

  3. item 12: 把重写函数声明为“override”的

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 C++中的面向对象编程总是围绕着类,继承,以及虚函数.这个世界中, ...

  4. c语言null和nullptr,nullptr和NULL

    nullptr是c++11中的关键字,表示空指针 要区分nullptr和NULL,首先要明白NULL的含义: NULL是一个宏定义,在c和c++中的定义不同,c中NULL为(void*)0,而c++中 ...

  5. 《Effective Modern C++》笔记

    文章目录 绪论 第1章 型别推导 条款1:理解模板类型推导 情况1:ParamType 是个指针或引用,但不是万能引用 情况2:ParamType是万能引用 情况3:ParamType既非指针也非引用 ...

  6. [读书笔记]《Effective Modern C++》—— 移步现代 C++

    文章目录 前言 item7:区别使用 () 和 {} 创建对象 item8:优先考虑使用 nullptr 而不是 0 或者 NULL item9:优先考虑别名声明而非 typedefs item10: ...

  7. Effective Modern C++ 纯人工翻译,持续更新,不为博你眼球,旨在自我提升

    文章目录 Effective.Modern.C++ 关键词翻译 Argument Parameter ParamType expr .expression type deduction trailin ...

  8. Effective Modern C++ 第三章第二节,C++新特性

    Chapter 3-2: Moving to Modern C++ Item 11: Prefer deleted functions to private undefined ones C++中,有 ...

  9. Effective Modern C++ 第三章第一节,C++新特性:初始化、nullptr、alias别名、enum

    Chapter 3 part 1, Moving to Modern C++ Item 7: Distinguish between () and {} when creating objects 几 ...

  10. 《Effective Modern C++》读书笔记

    Tags: c++ Note:为避免各种侵权问题,本文并没有复制原书任意文字(代码除外,作者已经声明代码可以被使用).需要原书完整中文翻译的读者请等待官方译本的发布. 正文 为了让本文更加清晰,依然还 ...

最新文章

  1. 网关拓扑结构与功能设计归纳
  2. 人工智能算法模型必会之——正则化方法综述
  3. 从建好到用好,阿里云原生微服务生态的演进
  4. python画圆形螺旋线_这个Python项目,一秒生成可爱像素风图片
  5. 激进or务实?HEVC、AV1 和私有Codecs现状
  6. seo超强外部链接、内部链接技巧
  7. window.showModalDialog模态对话框 值回传 TreeView无刷新
  8. 嵌入式系统——文件系统
  9. 通达OA11.2漏洞复现
  10. python爬虫教程下载-Python网络爬虫从入门到精通 PDF 下载
  11. 关于菜鸡学习时服务器购买的注意点
  12. 【C语言】简易版_飞机小游戏
  13. 本地颁发 SSL 证书,并开启 https 服务调试
  14. 英特尔发布第三代全新可扩展处理器,加速5G网络转型
  15. win7 喇叭图标不见了
  16. 合适的教育ERP管理系统,可让你省去很多麻烦
  17. 系统调用(Linux)
  18. Mybatis(1)——Mybatis Generator自动生成代码
  19. java图片加气泡文字,动态图片加气泡文字 微信动态图片加文字教程
  20. 【半导体物理】笔记 柴常春 西安电子科技大学 更新ing...

热门文章

  1. 极域电子教室怎么修改学生端频道号
  2. 快递 code与快递名称
  3. html网页接单广告词,最吸引人的网站宣传广告词
  4. 前端工程师的摸鱼日常(4)
  5. 一个强迫症的电脑下(软件篇)
  6. ReactiveCocoa简介翻译
  7. matlab求变上限积分的导数,变上限积分函数的求导
  8. 计算机图形学必读的10本书
  9. 笑着学Spring - (3) - Spring事务管理
  10. 工具学习:适用于 Windows10 的触摸板手势