cpp/memory/out ptr t/~out ptr t

Resets the adapted object by the value of modified  object (or the  object if  has been called) and the captured arguments.

Let
 * denotes the adapted object,
 * denotes the captured arguments,
 * denotes the value of stored, or if  has been called,
 * be
 * , if it is valid and denotes a type, otherwise,
 * , if is valid and denotes a type, otherwise,
 * , if is valid and denotes a type, otherwise,

If is well-formed, the destructor performs

otherwise, if is, the destructor performs

otherwise, the program is ill-formed.