FreeBSD Manual Pages
std::ranges...ew::iterator(3) C++ Standard Libarystd::ranges...ew::iterator(3) NAME std::ranges::split_view::iterator - std::ranges::split_view::iterator Synopsis class /*iterator*/; (since C++20) (exposition only*) The return type of split_view::begin. This is a forward_iterator, so it is expected that V models at least forward_range. Member types Member type Definition iterator_concept std::forward_iterator_tag iterator_category std::input_iterator_tag value_type ranges::subrange<ranges::iterator_t<V>> difference_type ranges::range_difference_t<V> Data members Member name Definition A pointer of type ranges::split_view<V, Pattern>* to the parent_ (private) parent split_view object. (exposition-only member object*) An iterator of type ranges::iterator_t<V> into the cur_ (private) underlying view that points to the begin of a current subrange. (exposition-only member object*) A subrange of type ranges::sub- range<ranges::iterator_t<V>> next_ (private) to the position of the pattern next to the current subrange. (exposition-only member object*) A boolean flag that indicates whether an empty trailing trailing_empty_ (private) subrange (if any) was reached. (exposition-only member object*) Member functions constructor constructs an iterator (C++20) (public member function) base returns the underlying iterator (C++20) (public member function) operator* returns the current subrange (C++20) (public member function) operator++ advances the iterator operator++(int) (public member function) (C++20) std::ranges::split_view::iterator::iterator /*iterator*/() = default; (1) (since C++20) constexpr /*iterator*/( split_view& parent, ranges::iterator_t<V> current, (2) (since C++20) ranges::subrange<ranges::iterator_t<V>> next ); 1) Value-initializes non-static data members with their default mem- ber initializers, that is * ranges::split_view* parent_ = nullptr;, * ranges::iterator_t<V> cur_ = ranges::iterator_t<V>();, * ranges::subrange<ranges::iterator_t<V>> next_ = ranges::subrange<ranges::iterator_t<V>>();, and * bool trailing_empty_ = false;. 2) Initializes non-static data members: * ranges::split_view* parent_ = std::addressof(parent);, * ranges::iterator_t<V> cur_ = std::move(current);, * ranges::subrange<ranges::iterator_t<V>> next_ = std::move(next);, and * bool trailing_empty_ = false;. std::ranges::split_view::iterator::base constexpr const ranges::iterator_t<V> base() const; (since C++20) Equivalent to return cur_;. std::ranges::split_view::iterator::operator* constexpr ranges::range_reference_t<V> operator*() const; (since C++20) Equivalent to return {cur_, next_.begin()};. std::ranges::split_view::iterator::operator++ constexpr /*iterator*/& operator++(); (1) (since C++20) constexpr void operator++( int ); (2) (since C++20) 1) Equivalent to cur_ = next_.begin(); if (cur_ != ranges::end(parent_->base_)) { if (cur_ = next_.end(); cur_ == ranges::end(parent_->base_)) { trailing_empty_ = true; next_ = {cur_, cur_}; } else next_ = parent_->find_next(cur_); } else trailing_empty_ = false; return *this; 2) Equivalent to auto tmp = *this; ++*this; return tmp;. Non-member functions operator== compares the underlying iterators (C++20) (function) operator==(std::ranges::split_view::iterator, std::ranges::split_view::iterator) friend constexpr bool operator==( const /*iterator*/& x, const (since C++20) /*iterator*/& y ); Equivalent to return x.cur_ == y.cur_ and x.trailing_empty_ == y.trailing_empty_;. The != operator is synthesized from operator==. This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::ranges::split_view::iterator is an associated class of the arguments. http://cppreference.com 2024.06.10 std::ranges...ew::iterator(3)
NAME | Synopsis | Member types | Member functions | Non-member functions
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::split_view::iterator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
