使用std::make_unique<T[]>(size)进行值初始化

7

Does

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

始终对元素进行值初始化?我查看了实现,clangg++都在使用。
new T[size]()

进行值初始化。

但我无法找到符合C++14 / 17标准的实现必须这样做的规定。

1个回答

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]())

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接