std::experimental::unique_resource<R, D>:: unique_resource
|
unique_resource
(
)
;
|
(1) | (bibliothèque fundamentals TS v3) |
|
template
<
class
RR,
class
DD
>
unique_resource ( RR && r, DD && d ) noexcept ( /*voir ci-dessous*/ ) |
(2) | (bibliothèque fundamentals TS v3) |
|
unique_resource
(
unique_resource
&&
other
)
;
|
(3) | (bibliothèque fundamentals TS v3) |
Les éléments suivants sont utilisés à des fins explicatives :
-
RSest le type du gestionnaire de ressource stocké. - L'expression res_ fait référence au gestionnaire de ressource sous-jacent.
-
del_fait référence à l'objet suppresseur.
unique_resource
construit ne possède pas la ressource.
Ensuite, le suppresseur est initialisé avec std:: forward < DD > ( d ) si std:: is_nothrow_constructible_v < D, DD > est true , sinon avec d . Si l'initialisation du suppresseur lève une exception, appelle d ( res_ ) .
Le
unique_resource
construit possède la ressource.
std::move
si
std::
is_nothrow_move_constructible_v
<
RS
>
est
true
. Si l'initialisation du gestionnaire de ressource stocké lève une exception,
other
n'est pas modifié.
Ensuite, le suppresseur est initialisé avec celui de other , en utilisant
std::move
si
std::
is_nothrow_move_constructible_v
<
D
>
est
true
. Si l'initialisation du suppresseur lève une exception et
std::
is_nothrow_move_constructible_v
<
RS
>
est
true
et
other
possède la ressource, appelle le suppresseur de
other
avec
res_
pour libérer la ressource, puis appelle
other.
release
(
)
.
Après la construction, le
unique_resource
construit possède sa ressource si et seulement si
other
possédait la ressource avant la construction, et
other
est défini pour ne pas posséder la ressource.
Table des matières |
Paramètres
| r | - | un descripteur de ressource |
| d | - | un suppresseur à utiliser pour libérer la ressource |
| other | - |
un autre
unique_resource
dont acquérir la propriété
|
Exceptions
Toute exception levée lors de l'initialisation du gestionnaire de ressource stocké ou du suppresseur.
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
>
Notes
Le mécanisme de ces constructeurs garantit l'absence de fuite de ressources.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
construit un nouveau
unique_ptr
(fonction membre publique de
std::unique_ptr<T,Deleter>
)
|