C++版本众多,在标准化的发展路上,重要的版本有C++98, C++03, C++11, C++14, C++17。 没有找到真正意义的统计,猜测,C++11是应用最广泛的C++版本之一。C++11引入了许多重要的新特性,如自动类型推导、右值引用、智能指针、Lambda表达式、范围基于for循环等。
- 仔细区别 pointers 和 References
- 最好显式的使用转型操作符 static_cast, const_cast, dynamic_cast, reinterpret_cast
cpplint
智能指针
shared_ptr, weak_ptr, unique_ptr
unique_ptr是用于取代c++98的auto_ptr的产物
const
仿函数
匿名函数
参数捕获
左值右值
C++中的每个表达式都有两种独立的特性:类型(type)和值分类(value category)。每个表达式都属于三大value category之一:prvalue,xvalue和lvalue。
右值引用
std::forward
完美转发实现了参数在传递过程中保持其值属性的功能,即若是左值,则传递之后仍然是左值,若是右值,则传递之后仍然是右值。
std::forward
std::move
std::move(t) 用来表明对象t 是可以moved from的,它允许高效的从t资源转换到lvalue上.
并行安全的数据结构
Lock
std::unique_lock<std::mutex>
std::lock_guard<std::mutex>
final
final 修饰一个类, 意味着继承该类会导致编译错误 final 修饰是一个方法, 意味着重载该方法会导致编译错误
template
template是C++11引入的关键字模板。