Namespaces
Variants

std::optional<T>:: begin

From cppreference.net
Utilities library
constexpr iterator begin ( ) noexcept ;
(depuis C++26)
constexpr const_iterator begin ( ) const noexcept ;
(depuis C++26)

Si * this contient une valeur, retourne un itérateur vers la valeur contenue. Sinon, une valeur d'itérateur après-la-fin.

range-begin-end.svg

Table des matières

Valeur de retour

Itérateur vers la valeur contenue si has_value ( ) est true . Sinon, un itérateur après-la-fin.

Complexité

Constante.

Notes

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_optional_range_support 202406L (C++26) Support des gammes pour std::optional

Exemple

#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());
    // prise en charge de la boucle for à portée
    for (int i : none)
        std::println("'none' a une valeur de {}", i);
    for (int i : some)
        std::println("'some' a une valeur de {}", i);
    std::optional<std::vector<int>> many({0, 1, 2});
    for (const auto& v : many)
        std::println("'many' a une valeur de {}", v);
}

Sortie :

'some' a une valeur de 42
'many' a une valeur de [0, 1, 2]

Voir aussi

(C++26)
retourne un itérateur vers la fin
(fonction membre publique)