智能指针的创建

make_unique 和 make_share

优先使用 std:make_unique 和 std:make_shared, 而非使用 new;

  • make_unique: 减少代码量, 能够加快编译速度, 定义两边类型时, 编译器需要进行类型推导, 会降低编译速度, 某些意外情况下可能会导致内存泄漏, 但是 make_unique 不允许自定析构器, 不接受 std:initializer_list 对象
  • make_shared: 这个主要是可以减少对堆中申请内存的次数, 只需要申请一次即可