目录

内存管理

使用“复制-交换”实现赋值运算符

class_type& operator=(const class_type& rhs) {
  if (this != class_type) {
    class_type temp(rhs);
    swap(*this, rhs);
  }
  return *this;
}
// 复制交换考虑异常安全

模板

类型推导

  • auto自动类型推导会去掉引用和cv限定符
  • decltype则不会但是会有代码冗余
  • decltype(auto)即可以推导同时保留引用和cv限定符,同时减少代码冗余
  • 常用于函数返回值

变量模板

template <typename T>
T value_name = T(3.5555);

float value = value_nale<float>;