Files
2025-10-25 03:02:53 +03:00

2.6 KiB
Raw Permalink Blame History

[optional.iterators]

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;

1

#

These types model contiguous_iterator ([iterator.concept.contiguous]), meet the Cpp17RandomAccessIterator requirements ([random.access.iterators]), and meet the requirements for constexpr iterators ([iterator.requirements.general]), with value type remove_cv_t.

The reference type is T& for iterator andconst T& for const_iterator.

2

#

All requirements on container iterators ([container.reqmts]) apply tooptional::iterator and optional::const_iterator as well.

3

#

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;

4

#

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;

5

#

Returns: begin() + has_value().