std::out_ptr_t<Smart,Pointer,Args...>:: ~out_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
out_ptr_t::~out_ptr_t
|
||||
| Non-member functions | ||||
|
~out_ptr_t
(
)
;
|
(desde C++23) | |
Restablece el objeto adaptado
Smart
mediante el valor del objeto modificado
Pointer
(o el objeto
void
*
si se ha llamado a
operator
void
**
(
)
) y los argumentos capturados.
Sea
-
sdenota el objetoSmartadaptado, -
args...denota los argumentos capturados, -
pdenota el valor almacenado dePointer, o static_cast < Pointer > ( * operator void ** ( ) ) si operator void ** ha sido llamado, -
SPserá- Smart :: pointer , si es válido y denota un tipo, de lo contrario,
- Smart :: element_type * , si Smart :: element_type es válido y denota un tipo, de lo contrario,
- std:: pointer_traits < Smart > :: element_type * , si std:: pointer_traits < Smart > :: element_type es válido y denota un tipo, de lo contrario,
-
Pointer.
Si s. reset ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) está bien formado, el destructor realiza
- if ( p ) s. reset ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) ; ,
de lo contrario, si std:: is_constructible_v < Smart, SP, Args... > es true , el destructor realiza
- if ( p ) s = Smart ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) ; ,
de lo contrario, el programa está mal formado.
Notas
Si
Smart
es una especialización de
std::shared_ptr
, la implementación puede asignar el almacenamiento para el nuevo bloque de control durante la construcción, con el fin de dejar las operaciones que no lanzan excepciones al destructor.
Los argumentos capturados por valor se destruyen después de reiniciar.