std::inout_ptr_t<Smart,Pointer,Args...>::inout_ptr_t
来自cppreference.com
                    
                                        
                    < cpp | memory | inout ptr t
                    
                                                            
                    | explicit inout_ptr_t( Smart &sp, Args... args ); | (1) | (C++23 起) | 
| inout_ptr_t( const inout_ptr_t& ) = delete; | (2) | (C++23 起) | 
1) 创建 
inout_ptr_t 。如同将 sp 绑定到 Smart& 成员一般适配它,如同用 std::forward<T>(t) 初始化对应的 Args... 中类型 T 的成员一般捕获 args... 中的实参 t ,然后若 Smart 为指针类型则以 sp 初始化存储的 Pointer ,否则以 sp.get() 初始化它。若 Smart 不是指针类型则可能调用 sp.release() ,该情况下不会再于析构函数内调用它。2) 复制构造函数被显示删除。 
inout_ptr_t 既不可复制又不可移动。参数
| sp | - | 要适配的对象(常为智能指针) | 
| args... | - | 要捕获的用于重设的实参 | 
返回值
(无)
异常
可能抛出实现定义的异常。
注解
若 Smart 不是指针类型且构造函数不调用 sp.release() ,则析构函数在重设前可能调用它。
args... 中的每个参数若拥有对象类型则被移动到创建的 inout_ptr_t 中,而若拥有引用类型则保持原状转移到创建的 inout_ptr_t 中。
允许 inout_ptr_t 抛出异常。例如当 sp 为带有控制块的侵入式指针时,新的控制块的分配可以在构造函数而非析构函数内进行。
示例
| 本节未完成 原因:暂无示例 |