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

NAME
     std::ranges::join_with_view::iterator - std::ranges::join_with_view::itera-
     tor

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

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

	If either V or Pattern is not a simple view, Const is true for iterators
     returned
	from the const overloads, and false otherwise. If V and Pattern are sim-
     ple views,
	Const  is  true  if and only if ranges::range_reference_t<V> is a refer-
     ence.

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*)       InnerBase
     ranges::range_reference_t<Base>
		       (exposition-only  member  type*)  PatternBase	   const
     Pattern if Const is true, otherwise Pattern
		       (exposition-only member type*)
			 * std::bidirectional_iterator_tag, if
			      * ranges::range_reference_t<Base> is  a  reference
     type,
			      * Base, InnerBase and PatternBase each model bidi-
     rectional_range,
				and  iterator_concept	       *  InnerBase  and
     PatternBase each model common_range;
			 * std::forward_iterator_tag, if
			      * ranges::range_reference_t<Base> is  a  reference
     type, and
			      * Base and InnerBase 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::iterator_t<Base>>::itera-
     tor_category, INNERC
		       be
		       std::iterator_traits<ranges::iterator_t<InnerBase>>::it-
     erator_category,
		       and PATTERNC be
		       std::iterator_traits<ranges::iterator_t<Pattern-
     Base>>::iterator_category.

			 *   std::input_iterator_tag,	 if    iterator_category
     std::common_reference_t<ranges::range_reference_t<InnerBase>,
						   ranges::range_refer-
     ence_t<PatternBase>>
			   is not a reference type;
			 * std::bidirectional_iterator_tag, if:
			      * OUTERC, INNERC, and PATTERNC each model
				std::derived_from<std::bidirectional_itera-
     tor_tag> and
			      *  ranges::range_reference_t<Base> and PatternBase
     each model
				common_range;
			 * std::forward_iterator_tag,  if  OUTERC,  INNERC,  and
     PATTERNC each model
			   std::derived_from<std::forward_iterator_tag>;
			 *    std::input_iterator_tag	otherwise.    value_type
     std::common_type_t<ranges::range_value_t<InnerBase>,
					  ranges::range_value_t<PatternBase>>
		       std::common_type_t<ranges::range_difference_t<Base>, dif-
     ference_type		       ranges::range_difference_t<InnerBase>,
					  ranges::range_difference_t<Pattern-
     Base>>

Member functions
	constructor	constructs an iterator
	(C++23) 	(public member function)
	operator*	accesses the element
	(C++23) 	(public member function)
	operator++
	operator++(int) advances or decrements the underlying iterator
	operator--	(public member function)
	operator--(int)
	(C++23)

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

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

home | help