2016-09-02 22 views
7

Liệustd :: make_unique <T[]> (size) giá trị khởi tạo

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

allways giá trị khởi tạo các yếu tố? Vâng, tôi nhìn vào thực hiện và clang cũng như g++ đang sử dụng

new T[size]() 

làm giá trị khởi tạo.

Nhưng tôi không thể thấy rằng việc triển khai tuân thủ C++ 14/17 để thực hiện việc này.

Trả lời

8

Nếu thư viện chuẩn tuân thủ C++ 14 thì có nó để thực hiện việc này (sử dụng new T[size]). Từ 14 C++ §20.8.1.4 [unique.ptr.create]/4:

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

  • Returns: unique_ptr<T>(new remove_extent_t<T>[n]()).
Các vấn đề liên quan