std::optional<T>::value_or - cppreference.com
De cppreference.com
|
|
(1) | (desde C++17) |
|
|
(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))
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
| ||
Valor de retorno
El valor actual si *this tiene un valor; de lo contrario, default_value.
Excepciones
Cualquier excepción lanzada por el constructor seleccionado del valor de retorno T.
Ejemplo
#include <optional> #include <iostream> #include <cstdlib> std::optional<const char*> quiza_getenv(const char* n) { if(const char* x = std::getenv(n)) return x; else return {}; } int main() { std::cout << quiza_getenv("MYPWD").value_or("(ninguno)") << '\n'; }
Posible salida:
Véase también
| Devuelve el valor contenido. (función miembro pública) [editar] |