std::experimental::optional<T>:: optional
|
constexpr
optional
(
)
noexcept
;
constexpr optional ( std:: experimental :: nullopt_t ) noexcept ; |
(1) | (biblioteca de fundamentos TS) |
|
optional
(
const
optional
&
other
)
;
|
(2) | (biblioteca de fundamentos TS) |
|
optional
(
optional
&&
other
)
noexcept
(
/* ver más abajo */
)
;
|
(3) | (biblioteca de fundamentos TS) |
|
constexpr
optional
(
const
T
&
value
)
;
|
(4) | (biblioteca de fundamentos TS) |
|
constexpr
optional
(
T
&&
value
)
;
|
(5) | (biblioteca de fundamentos TS) |
|
template
<
class
...
Args
>
constexpr explicit optional ( std:: experimental :: in_place_t , Args && ... args ) ; |
(6) | (biblioteca de fundamentos TS) |
|
template
<
class
U,
class
...
Args
>
constexpr
explicit
optional
(
std::
experimental
::
in_place_t
,
|
(7) | (biblioteca de fundamentos TS) |
Construye un nuevo objeto
optional
.
T
con la expresión
*
other
. Si
other
no contiene un valor, construye un objeto que
no contiene un valor
.
T
con la expresión
std
::
move
(
*
other
)
y
no
vacía
other
: un optional movido aún
contiene un valor
, pero el valor en sí ha sido movido. Si
other
no contiene un valor, construye un objeto que
no contiene un valor
.
T
con la expresión
value
. Este constructor es
constexpr
si el constructor de
T
seleccionado por la inicialización directa es
constexpr
.
T
con la expresión
std
::
move
(
value
)
. Este constructor es
constexpr
si el constructor de
T
seleccionado por la inicialización directa es
constexpr
.
T
a partir de los argumentos
std::
forward
<
Args
>
(
args
)
...
.
T
a partir de los argumentos
ilist,
std::
forward
<
Args
>
(
args
)
...
. La función no participa en la resolución de sobrecarga si
std::
is_constructible
<
T,
std::
initializer_list
<
U
>
&
, Args
&&
...
>
::
value
!
=
true
.
Contenidos |
Parámetros
| other | - |
otro objeto
optional
cuyo valor contenido se copiará
|
| value | - | valor con el que inicializar el valor contenido |
| args... | - | argumentos con los que inicializar el valor contenido |
| ilist | - | lista de inicialización con la que inicializar el valor contenido |
| Requisitos de tipo | ||
-
T
debe cumplir con los requisitos de
CopyConstructible
para usar las sobrecargas (2,4).
|
||
-
T
debe cumplir con los requisitos de
MoveConstructible
para usar las sobrecargas (3,5).
|
||
Excepciones
T
.
T
. Tiene la siguiente declaración
noexcept
:
T
.
Ejemplo
#include <experimental/optional> #include <iostream> #include <string> int main() { std::experimental::optional<int> o1, // vacío o2 = 1, // inicializado desde valor-R o3 = o2; // constructor de copia std::experimental::optional<std::string> o4(std::experimental::in_place, {'a', 'b', 'c'}); std::cout << *o2 << ' ' << *o3 << ' ' << *o4 << '\n'; }
Salida:
1 1 abc
Véase también
crea un objeto
optional
(plantilla de función) |