Lines Matching refs:unique_ptr
37 template <typename T, typename D = default_delete<T>> class unique_ptr {
100 /*constexpr*/ unique_ptr() /*noexcept*/ : data() {
104 /*constexpr*/ unique_ptr(std::nullptr_t) /*noexcept*/ : unique_ptr() { }
106 explicit unique_ptr(pointer ptr) /*noexcept*/ : data(ptr, deleter_type()) {
110 unique_ptr(pointer ptr,
116 unique_ptr(pointer ptr, remove_reference_t<deleter_type>&& d) /*noexcept*/
124 unique_ptr(unique_ptr&& that) /*noexcept*/
129 is_convertible<typename unique_ptr<U, ThatD>::pointer, pointer>::value &&
134 unique_ptr(unique_ptr<U, ThatD>&& that) /*noexcept*/
138 ~unique_ptr() /*noexcept*/ {
146 unique_ptr& operator=(unique_ptr&& that) /*noexcept*/ {
153 is_convertible<typename unique_ptr<U, ThatD>::pointer, pointer>::value &&
155 unique_ptr&> operator=(unique_ptr<U, ThatD>&& that) /*noexcept*/ {
161 unique_ptr& operator=(std::nullptr_t) /*noexcept*/ {
206 void swap(unique_ptr& that) /*noexcept*/ {
210 unique_ptr(const unique_ptr&) = delete;
211 unique_ptr& operator=(const unique_ptr&) = delete;
214 template <typename T, typename D> class unique_ptr<T[], D> {
276 /*constexpr*/ unique_ptr() /*noexcept*/ : data() {
280 /*constexpr*/ unique_ptr(std::nullptr_t) /*noexcept*/ : unique_ptr() { }
282 explicit unique_ptr(pointer ptr) /*noexcept*/ : data(ptr, deleter_type()) {
286 unique_ptr(pointer ptr,
292 unique_ptr(pointer ptr, remove_reference_t<deleter_type>&& d) /*noexcept*/
299 unique_ptr(unique_ptr&& that) /*noexcept*/
303 ~unique_ptr() {
311 unique_ptr& operator=(unique_ptr&& that) /*noexcept*/ {
317 unique_ptr& operator=(std::nullptr_t) /*noexcept*/ {
359 void swap(unique_ptr& that) /*noexcept*/ {
363 unique_ptr(const unique_ptr&) = delete;
364 unique_ptr& operator=(const unique_ptr&) = delete;
368 inline void swap(unique_ptr<T, D>& a, unique_ptr<T, D>& b) /*noexcept*/ {
373 inline bool operator==(const unique_ptr<T, D>& a, const unique_ptr<U, ThatD>& b) {
378 inline bool operator==(const unique_ptr<T, D>& a, std::nullptr_t) /*noexcept*/ {
384 inline bool operator==(std::nullptr_t, const unique_ptr<T, D>& b) /*noexcept*/ {
390 inline bool operator!=(const unique_ptr<T, D>& a, const unique_ptr<U, ThatD>& b) {
395 inline bool operator!=(const unique_ptr<T, D>& a, std::nullptr_t) /*noexcept*/ {
401 inline bool operator!=(std::nullptr_t, const unique_ptr<T, D>& b) /*noexcept*/ {