[out.ptr] # 20 Memory management library [[mem]](./#mem) ## 20.3 Smart pointers [[smartptr]](smartptr#out.ptr) ### 20.3.4 Smart pointer adaptors [[smartptr.adapt]](smartptr.adapt#out.ptr) #### 20.3.4.2 Function template out_ptr [out.ptr] [🔗](#lib:out_ptr) `template constexpr auto out_ptr(Smart& s, Args&&... args); ` [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L5650) Let P be Pointer if is_void_v is false, otherwise *POINTER_OF*(Smart)[.](#1.sentence-1) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/memory.tex#L5655) *Returns*: out_ptr_t(s, std​::​forward(args)...)[.](#2.sentence-1)