std::experimental::optional<T>:: optional
|
constexpr
optional
(
)
noexcept
;
constexpr optional ( std:: experimental :: nullopt_t ) noexcept ; |
(1) | (spécification technique des fondamentaux de la bibliothèque) |
|
optional
(
const
optional
&
other
)
;
|
(2) | (spécification technique des fondamentaux de la bibliothèque) |
|
optional
(
optional
&&
other
)
noexcept
(
/* voir ci-dessous */
)
;
|
(3) | (spécification technique des fondamentaux de la bibliothèque) |
|
constexpr
optional
(
const
T
&
value
)
;
|
(4) | (spécification technique des fondamentaux de la bibliothèque) |
|
constexpr
optional
(
T
&&
value
)
;
|
(5) | (spécification technique des fondamentaux de la bibliothèque) |
|
template
<
class
...
Args
>
constexpr explicit optional ( std:: experimental :: in_place_t , Args && ... args ) ; |
(6) | (spécification technique des fondamentaux de la bibliothèque) |
|
template
<
class
U,
class
...
Args
>
constexpr
explicit
optional
(
std::
experimental
::
in_place_t
,
|
(7) | (spécification technique des fondamentaux de la bibliothèque) |
Construit un nouvel objet
optional
.
T
avec l'expression
*
other
. Si
other
ne contient pas de valeur, construit un objet qui
ne contient pas de valeur
.
T
avec l'expression
std
::
move
(
*
other
)
et
ne rend pas
other
vide : un optional déplacé depuis
contient toujours une valeur
, mais la valeur elle-même est déplacée. Si
other
ne contient pas de valeur, construit un objet qui
ne contient pas de valeur
.
T
avec l'expression
value
. Ce constructeur est
constexpr
si le constructeur de
T
sélectionné par l'initialisation directe est
constexpr
.
T
avec l'expression
std
::
move
(
value
)
. Ce constructeur est
constexpr
si le constructeur de
T
sélectionné par l'initialisation directe est
constexpr
.
T
à partir des arguments
std::
forward
<
Args
>
(
args
)
...
.
T
à partir des arguments
ilist,
std::
forward
<
Args
>
(
args
)
...
. La fonction ne participe pas à la résolution de surcharge si
std::
is_constructible
<
T,
std::
initializer_list
<
U
>
&
, Args
&&
...
>
::
value
!
=
true
.
Table des matières |
Paramètres
| autre | - |
un autre objet
optional
dont la valeur contenue doit être copiée
|
| valeur | - | valeur pour initialiser la valeur contenue |
| args... | - | arguments pour initialiser la valeur contenue |
| ilist | - | liste d'initialisation pour initialiser la valeur contenue |
| Exigences de type | ||
-
T
doit satisfaire aux exigences de
CopyConstructible
pour utiliser les surcharges (2,4).
|
||
-
T
doit satisfaire aux exigences de
MoveConstructible
pour utiliser les surcharges (3,5).
|
||
Exceptions
T
.
T
. Possède la déclaration
noexcept
suivante :
T
.
Exemple
#include <experimental/optional> #include <iostream> #include <string> int main() { std::experimental::optional<int> o1, // vide o2 = 1, // initialisé à partir d'une rvalue o3 = o2; // constructeur par copie std::experimental::optional<std::string> o4(std::experimental::in_place, {'a', 'b', 'c'}); std::cout << *o2 << ' ' << *o3 << ' ' << *o4 << '\n'; }
Sortie :
1 1 abc
Voir aussi
crée un objet
optional
(modèle de fonction) |