2016-09-02 54 views
7

のstd :: make_unique <T[]>(サイズ)値初期化

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

オールウェイズ要素を値初期化していますか?まあ、私は実装に見て、clangなどg++は値初期化を行う

new T[size]() 

を使用しています。

しかし、私はC++ 14/17 に準拠する実装がこれを行うためにを持っていることがわかりません。

答えて

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]())
関連する問題