20 Memory management library [mem]

20.3 Smart pointers [smartptr]

20.3.4 Smart pointer adaptors [smartptr.adapt]

20.3.4.2 Function template out_­ptr [out.ptr]

template<class Pointer = void, class Smart, class... Args> auto out_ptr(Smart& s, Args&&... args);
Let P be Pointer if is_­void_­v<Pointer> is false, otherwise POINTER_­OF(Smart).
Returns: out_­ptr_­t<Smart, P, Args&&...>(s, std​::​forward<Args>(args)...)