|
|
Member functions | ||||
Observers | ||||
Iterators | ||||
optional::begin (C++26) | ||||
(C++26) | ||||
Monadic operations | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
Modifiers | ||||
Non-member functions | ||||
Deduction guides | ||||
Helper classes | ||||
Helper objects | ||||
constexpr iterator begin()noexcept; | (since C++26) | |
constexpr const_iterator begin()constnoexcept; | (since C++26) | |
If*this contains a value, returns an iterator to the contained value. Otherwise, a past-the-end iterator value.
Contents |
Iterator to the contained value ifhas_value() istrue. Otherwise, a past-the-end iterator.
Constant.
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_optional_range_support | 202406L | (C++26) | Range support forstd::optional |
#include <optional>#include <print>#include <vector> int main(){constexprstd::optional<int> none{std::nullopt};constexprstd::optional<int> some{42}; static_assert(none.begin()== none.end()); static_assert(some.begin()!= some.end()); // ranged-for loop supportfor(int i: none)std::println("'none' has a value of {}", i); for(int i: some)std::println("'some' has a value of {}", i); std::optional<std::vector<int>> many({0,1,2});for(constauto& v: many)std::println("'many' has a value of {}", v);}
Output:
'some' has a value of 42'many' has a value of [0, 1, 2]
(C++26) | returns an iterator to the end (public member function)[edit] |