effective modern c++(条款5-17)auto,转向现代c++

条款5–优先使用auto,而非显式型别声明

条款6–当auto推导的型别不符合要求时,使用带显示型别的初始化物习惯用法

隐形的代理型别会导致推导错误
可以用static_cast动态声明,引导auto

条款7–在创建对象时区分()和{}

条款8–优先使用nullptr,而非0或NULL

条款9–优先选用别名声明,而非typedef

typedef不支持模板
C++11型别转换工具<type_traits>:
std::remove_const::type,
std::remove_reference::type,
std::add_lvalue_reference::type

条款10–优先选用限定作用域的枚举型别,而非不限定作用域的枚举型别

即enum class要优于enum,

  • 有底层型别int
  • 总是可以前置声明

条款11–优先选用删除函数,而非private未定义函数

删除函数:

  • 成员函数
  • 非成员函数
  • 特化模板

条款12–为意在改写的函数添加override声明

成员函数引用饰词
&
&&
修饰成员函数以适用左右值的实例

条款13–优先选用const_iterator,而非iterator

在最通用的代码中,优先选用非成员函数版本的begin(),end(),rbegin()等

条款14–只要函数不发射异常,就为其加上noexcept声明

noexcept比throw()(98版)和不加会得到更多的优化

条款15–只要有可能使用constexpr,就使用它

constexpr均具有const属性,
编译器计算

条款16–保证const成员的线程安全性

mutex
atomic单区域

条款17–理解特种成员函数的生成机制

要用就显式写出来不好吗

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值