条款16:让const成员函数线程安全
即使是 const 函数,读缓存也可能写成员,应加锁防止竞态。
即使是 const 函数,读缓存也可能写成员,应加锁防止竞态。
constexpr 可在编译期求值,提升性能与安全性;用于函数、变量、构造函数都有效,推荐优先使用。
加 noexcept 可提升性能并避免意外终止,明确承诺无异常。
读操作不应修改容器,使用 const_iterator 更安全。
防止拼写错误或签名不一致,应加 override 显示重写。
使用 = delete 明确禁止拷贝等操作,替代旧做法。
enum class 更安全,避免作用域污染和隐式转换。
using 更清晰易读,适配模板更好,应取代旧的 typedef。
nullptr 更安全,避免重载解析歧义,推荐取代 0/NULL。
花括号初始化更通用,可防止窄化转换,避免最令人头疼的解析;但重载时易优先匹配 std::initializer_list 构造函数,需谨慎使用。