确实
std::make_unique<double[]>(1000)
总是值初始化元素?好吧,我调查了实现,clang
以及g++
正在使用
new T[size]()
进行值初始化。
但我无法找到符合C ++ 14/17 的实现来执行此操作。
答案 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]())
。