Espacios de nombres
Variantes
Acciones

std::optional<T>::value_or

De cppreference.com
< cpp‎ | utility‎ | optional
 
 
Biblioteca de servicios
 
 
template<class U >
constexpr T value_or( U&& default_value )const&;
(1) (desde C++17)
template<class U >
constexpr T value_or( U&& default_value )&&;
(2) (desde C++17)

Devuelve el valor contenido si *this tiene un valor; de lo contrario, devuelve default_value.

1) Equivalente a bool(*this)?**this :static_cast<T>(std::forward<U>(default_value))
2) Equivalente a bool(*this)? std::move(**this):static_cast<T>(std::forward<U>(default_value))

Contenido

[editar]Parámetros

default_value - El valor a usar en caso que *this esté vacío.
Requisitos de tipo
-
T debe satisfacer los requisitos de CopyConstructible para poder usar la sobrecarga (1).
-
T debe satisfacer los requisitos de MoveConstructible para poder usar la sobrecarga (2).
-
U&& debe ser convertible a T

[editar]Valor de retorno

El valor actual si *this tiene un valor; de lo contrario, default_value.

[editar]Excepciones

Cualquier excepción lanzada por el constructor seleccionado del valor de retorno T.

[editar]Ejemplo

#include <optional>#include <iostream>#include <cstdlib>   std::optional<constchar*> quiza_getenv(constchar* n){if(constchar* x =std::getenv(n))return x;elsereturn{};}   int main(){std::cout<< quiza_getenv("MYPWD").value_or("(ninguno)")<<'\n';}

Posible salida:

(ninguno)

[editar]Véase también

Devuelve el valor contenido.
(función miembro pública)[editar]
close