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 common_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  in-
     valid or
	different  from  ranges::iterator_t<V>), Const is true for iterators re-
     turned 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_iterator_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.  iterator_cate-
     gory
			 * std::bidirectional_iterator_tag, if OUTERC and INNERC
     each model
			   std::derived_from<std::bidirectional_iterator_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)

home | help