[unique.ptr.runtime.general] (original) (raw)

20 Memory management library [mem]

20.3 Smart pointers [smartptr]

20.3.1 Unique-ownership pointers [unique.ptr]

20.3.1.4 unique_ptr for array objects with a runtime length [unique.ptr.runtime]

20.3.1.4.1 General [unique.ptr.runtime.general]

namespace std { template<class T, class D> class unique_ptr<T[], D> { public: using pointer = see below;using element_type = T;using deleter_type = D;constexpr unique_ptr() noexcept;template<class U> constexpr explicit unique_ptr(U p) noexcept;template<class U> constexpr unique_ptr(U p, see below d) noexcept;template<class U> constexpr unique_ptr(U p, see below d) noexcept;constexpr unique_ptr(unique_ptr&& u) noexcept;template<class U, class E> constexpr unique_ptr(unique_ptr<U, E>&& u) noexcept;constexpr unique_ptr(nullptr_t) noexcept;constexpr ~unique_ptr();constexpr unique_ptr& operator=(unique_ptr&& u) noexcept;template<class U, class E> constexpr unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;constexpr unique_ptr& operator=(nullptr_t) noexcept;constexpr T& operator[](size_t i) const;constexpr pointer get() const noexcept;constexpr deleter_type& get_deleter() noexcept;constexpr const deleter_type& get_deleter() const noexcept;constexpr explicit operator bool() const noexcept;constexpr pointer release() noexcept;template<class U> constexpr void reset(U p) noexcept;constexpr void reset(nullptr_t = nullptr) noexcept;constexpr void swap(unique_ptr& u) noexcept; unique_ptr(const unique_ptr&) = delete; unique_ptr& operator=(const unique_ptr&) = delete;};}

A specialization for array types is provided with a slightly altered interface.

Descriptions are provided below only for members that differ from the primary template.

The template argument T shall be a complete type.