Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...w::iterator(3)  C++ Standard Libary std::ranges...w::iterator(3)

NAME
       std::ranges::join_view::iterator	- std::ranges::join_view::iterator

Synopsis
	  template< bool Const >  (since C++20)
	  class	/*iterator*/	  (exposition only*)

	  The return type of join_view::begin, and of join_view::end when both
       the outer range
	  V  and  the  inner  range  ranges::range_reference_t<V> satisfy com-
       mon_range and the
	  parent join_view is a	forward_range.

	  If V is not a	simple view (e.g. if  ranges::iterator_t<const	V>  is
       invalid or
	  different  from  ranges::iterator_t<V>), Const is true for iterators
       returned	from the
	  const	overloads, and false otherwise.	If V is	a simple  view,	 Const
       is true if and
	  only if ranges::range_reference_t<V> is a reference.

Member types
       Member  type	   Definition  Parent		 const join_view<V> if
       Const is	true, otherwise	join_view<V>
			 (exposition-only	member	     type*)	  Base
       const V if Const	is true, otherwise V
			 (exposition-only      member	  type*)     OuterIter
       ranges::iterator_t<Base>
			 (exposition-only     member	 type*)	     InnerIter
       ranges::iterator_t<ranges::range_reference_t<Base>>
			 (exposition-only member type*)
			   *	    std::bidirectional_iterator_tag,	    if
       ranges::range_reference_t<Base> is a reference type,
			     and Base and ranges::range_reference_t<Base> each
       model bidirectional_range;  iterator_concept	*  std::forward_itera-
       tor_tag,	if ranges::range_reference_t<Base> is a	reference type,	and
			     Base   and	 ranges::range_reference_t<Base>  each
       model forward_range;
			   * std::input_iterator_tag otherwise.
			 Defined  only	if   iterator::iterator_concept	  (see
       above) denotes std::forward_iterator_tag.

			 Let   OUTERC  be  std::iterator_traits<ranges::itera-
       tor_t<Base>>::iterator_category,	and let
			 INNERC	be
			 std::iterator_traits<ranges::itera-
       tor_t<ranges::range_reference_t<Base>>>::iterator_category.	itera-
       tor_category
			   *  std::bidirectional_iterator_tag,	if  OUTERC and
       INNERC each model
			     std::derived_from<std::bidirectional_itera-
       tor_tag>;
			   * std::forward_iterator_tag,	if OUTERC  and	INNERC
       each model
			     std::derived_from<std::forward_iterator_tag>;
			   *  std::input_iterator_tag  otherwise.   value_type
       ranges::range_value_t<ranges::range_reference_t<Base>>  difference_type
       std::common_type_t<ranges::range_difference_t<Base>,
					    ranges::range_differ-
       ence_t<ranges::range_reference_t<Base>>>

Member objects
	  Member name	    Definition
	  outer_ (private)  An object of type OuterIter
			    (exposition-only member object*)
	  inner_ (private)  An object of type InnerIter
			    (exposition-only member object*)
	  parent_ (private) An object of type Parent
			    (exposition-only member object*)

Member functions
	  constructor	  constructs an	iterator
	  (C++20)	  (public member function)
	  operator*	  accesses the element
	  operator->	  (public member function)
	  (C++20)
	  operator++
	  operator++(int) advances or decrements the underlying	iterators
	  operator--	  (public member function)
	  operator--(int)
	  (C++20)
	  satisfy	  skips	over empty inner ranges
	  (C++20)	  (exposition-only member function*)

Non-member functions
	  operator== compares the underlying iterators
	  (C++20)    (function)
	  iter_move  casts the result of dereferencing the underlying iterator
       to its
	  (C++20)    associated	rvalue reference type
		     (function)
	  iter_swap  swaps the objects pointed to by two underlying iterators
	  (C++20)    (function)

http://cppreference.com		  2024.06.10	  std::ranges...w::iterator(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::join_view::iterator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help