std::inout_ptr_t<Smart,Pointer,Args...>::~inout_ptr_t

Resets the adapted Smart object by the value of modified Pointer object (or the void* object if operator void**() has been called) and the captured arguments. release() may be called on the adapted Smart object if it is not called by the constructor.

# Declarations

~inout_ptr_t();

(since C++23)

# Notes

The implementation may allocate the storage for the data structure needed for Smart (e.g. a control block) on construction, in order to leave non-throwing works to the destructor.

Arguments captured by value are destroyed after resetting.

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 3897C++23the destructor did not update a raw pointer to the null valueit does