[optional.iterators] (original) (raw)
22 General utilities library [utilities]
22.5 Optional objects [optional]
22.5.3 Class template optional [optional.optional]
22.5.3.6 Iterator support [optional.iterators]
using iterator = _implementation-defined_;using const_iterator = _implementation-defined_;
The reference type is T& for iterator andconst T& for const_iterator.
All requirements on container iterators ([container.reqmts]) apply tooptional::iterator and optional::const_iterator as well.
Any operation that initializes or destroys the contained value of an optional object invalidates all iterators into that object.
constexpr iterator begin() noexcept;constexpr const_iterator begin() const noexcept;
Returns: If has_value() is true, an iterator referring to the contained value.
Otherwise, a past-the-end iterator value.
constexpr iterator end() noexcept;constexpr const_iterator end() const noexcept;
Returns: begin() + has_value().