Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::ranges::join_with_view<V,Pattern>::iterator

      From cppreference.com
      <cpp‎ |ranges‎ |join with view
       
       
      Ranges library
      Range adaptors
       
       
      template<bool Const>
      class/*iterator*/
      (exposition only*)

      ranges::join_with_view<V, Pattern>::iterator is the type of the iterators returned bybegin() andend() ofranges::join_with_view<V, Pattern>.

      The state of an iterator of this class is managed as if there are two nested iterators:

      • anouter iterator into the parent range*parent_

      This iterator class has the invariant that the inner iterator is always dereferenceable unless the outer iterator is not dereferenceable. When an iterator is constructed, incremented or decremented, its outer iterator might be adjusted to hold the invariant.

      Contents

      [edit]Template parameters

      Const - whether the iterator is a constant iterator

      [edit]Nested types

      Exposition-only types
      Type Definition
      Parentmaybe-const <Const,ranges::join_with_view<V, Pattern>>
      (exposition-only member type*)
      Basemaybe-const <Const, V>
      (exposition-only member type*)
      InnerBaseranges::range_reference_t<Base >
      (exposition-only member type*)
      PatternBasemaybe-const <Const, Pattern>
      (exposition-only member type*)
      OuterIterranges::iterator_t<Base >
      (exposition-only member type*)
      InnerIterranges::iterator_t<InnerBase >
      (exposition-only member type*)
      PatternIterranges::iterator_t<PatternBase >
      (exposition-only member type*)
      Iterator property types
      Type Definition
      iterator_concept aniterator tag,see below
      iterator_category
      (conditionally present)
      an iterator tag,see below
      value_type

      std::common_type_t<ranges::range_value_t<InnerBase >,
                         ranges::range_value_t<PatternBase >>

      difference_type

      std::common_type_t<ranges::range_difference_t<Base >,
                         ranges::range_difference_t<InnerBase >,
                         ranges::range_difference_t<PatternBase >>

      [edit]Determining the iterator concept

      iterator_concept is defined as follows:

      [edit]Determining the iterator category

      Given the following types:

      iterator_category is defined if and only ifstd::is_reference_v<InnerBase > istrue, andBase andInnerBase each modelforward_range. In this case, it is defined as follows:

      [edit]Data members

      Member Description
      Parent *parent_ the pointer to the parentjoin_with_view
      (exposition-only member object*)
      OuterIterouter_it_
      (present only ifBase modelsforward_range)
      the outer iterator
      (exposition-only member object*)
      std::variant<PatternIter , InnerIter >inner_it_ the inner iterator
      (exposition-only member object*)

      [edit]Member functions

      constructs an iterator
      (public member function)
      accesses the element
      (public member function)
      advances or decrements the underlying iterator
      (public member function)[edit]

      [edit]Non-member functions

      (C++23)
      compares the underlying iterators
      (function)
      (C++23)
      casts the result of dereferencing the underlying iterator to its associated rvalue reference type
      (function)
      (C++23)
      swaps the objects pointed to by two underlying iterators
      (function)
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/join_with_view/iterator&oldid=176927"

      [8]ページ先頭

      ©2009-2025 Movatter.jp