std::experimental::unique_resource<R, D>:: unique_resource
|
unique_resource
(
)
;
|
(1) | (biblioteca fundamentals TS v3) |
|
template
<
class
RR,
class
DD
>
unique_resource ( RR && r, DD && d ) noexcept ( /*ver más abajo*/ ) |
(2) | (biblioteca fundamentals TS v3) |
|
unique_resource
(
unique_resource
&&
other
)
;
|
(3) | (biblioteca fundamentals TS v3) |
Los siguientes elementos se utilizan con fines explicativos:
-
RSes el tipo del identificador de recurso almacenado. - La expresión res_ se refiere al identificador de recurso subyacente.
-
del_se refiere al objeto eliminador.
unique_resource
construido no posee el recurso.
Luego, el eliminador se inicializa con std:: forward < DD > ( d ) si std:: is_nothrow_constructible_v < D, DD > es true , de lo contrario con d . Si la inicialización del eliminador lanza una excepción, llama a d ( res_ ) .
El
unique_resource
construido posee el recurso.
std::move
si
std::
is_nothrow_move_constructible_v
<
RS
>
es
true
. Si la inicialización del manejador del recurso almacenado lanza una excepción,
other
no se modifica.
Luego, el deleter se inicializa con el de other , usando
std::move
si
std::
is_nothrow_move_constructible_v
<
D
>
es
true
. Si la inicialización del deleter lanza una excepción y
std::
is_nothrow_move_constructible_v
<
RS
>
es
true
y
other
posee el recurso, llama al deleter de
other
con
res_
para disponer del recurso, luego llama a
other.
release
(
)
.
Después de la construcción, el
unique_resource
construido posee su recurso si y solo si
other
poseía el recurso antes de la construcción, y
other
se establece para no poseer el recurso.
Contenidos |
Parámetros
| r | - | un manejador de recurso |
| d | - | un eliminador para utilizar para disponer del recurso |
| other | - |
otro
unique_resource
del cual adquirir la propiedad
|
Excepciones
Cualquier excepción lanzada durante la inicialización del manejador de recursos almacenado o el eliminador.
std::
is_nothrow_constructible_v
<
RS, RR
>
||
std::
is_nothrow_constructible_v
<
RS, RR
&
>
)
&&
(
std::
is_nothrow_constructible_v
<
D, DD
>
||
std::
is_nothrow_constructible_v
<
D, DD
&
>
std::
is_nothrow_move_constructible_v
<
R1
>
&&
std::
is_nothrow_move_constructible_v
<
D
>
Notas
El mecanismo de estos constructores garantiza que no haya fugas de recursos.
Ejemplo
|
Esta sección está incompleta
Razón: sin ejemplo |
Véase también
construye un nuevo
unique_ptr
(función miembro pública de
std::unique_ptr<T,Deleter>
)
|