Namespaces
Variants

std::optional<T>::begin

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
 
constexpr iterator begin() noexcept;
(desde C++26)
constexpr const_iterator begin() const noexcept;
(desde C++26)

Si *this contiene un valor, devuelve un iterador al valor contenido. En caso contrario, devuelve un valor de iterador de fin de secuencia.

Valor de retorno

Iterador al valor contenido si has_value ( ) es true . De lo contrario, un iterador pasado-el-final.

Complejidad

Constante.

Notas

Macro de prueba de características Valor Estándar Característica
__cpp_lib_optional_range_support 202406L (C++26) Soporte de rangos para std::optional

Ejemplo

#include <optional>
#include <print>
#include <vector>
int main()
{
    constexpr std::optional<int> none{std::nullopt};
    constexpr std::optional<int> some{42};
    static_assert(none.begin() == none.end());
    static_assert(some.begin() != some.end());
    // soporte para bucle for basado en rangos
    for (int i : none)
        std::println("'none' tiene un valor de {}", i);
    for (int i : some)
        std::println("'some' tiene un valor de {}", i);
    std::optional<std::vector<int>> many({0, 1, 2});
    for (const auto& v : many)
        std::println("'many' tiene un valor de {}", v);
}

Salida:

'some' tiene un valor de 42
'many' tiene un valor de [0, 1, 2]

Véase también

(C++26)
devuelve un iterador al final
(función miembro pública)