std :: make_unique <t []>(size)值初始化

时间:2016-09-02 10:22:47

标签: c++ c++11 c++14

确实

std::make_unique<double[]>(1000)

总是值初始化元素?好吧,我调查了实现,clang以及g++正在使用

new T[size]()

进行值初始化。

但我无法找到符合C ++ 14/17 的实现来执行此操作。

1 个答案:

答案 0 :(得分:8)

如果标准库符合C ++ 14,那么是 来执行此操作(使用new T[size])。来自C ++14§20.8.1.4[unique.ptr.create] / 4:

  

template <class T> unique_ptr<T> make_unique(size_t n);

     
      
  • 返回unique_ptr<T>(new remove_extent_t<T>[n]())
  •