20 Memory management library [mem]

20.3 Smart pointers [smartptr]

20.3.2 Shared-ownership pointers [util.sharedptr]

20.3.2.2 Class template shared_ptr [util.smartptr.shared]

20.3.2.2.5 Modifiers [util.smartptr.shared.mod]

constexpr void swap(shared_ptr& r) noexcept;
Effects: Exchanges the contents of *this and r.
constexpr void reset() noexcept;
Effects: Equivalent to shared_ptr().swap(*this).
template<class Y> constexpr void reset(Y* p);
Effects: Equivalent to shared_ptr(p).swap(*this).
template<class Y, class D> constexpr void reset(Y* p, D d);
Effects: Equivalent to shared_ptr(p, d).swap(*this).
template<class Y, class D, class A> constexpr void reset(Y* p, D d, A a);
Effects: Equivalent to shared_ptr(p, d, a).swap(*this).