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

NAME
     std::ranges::elements_view::iterator - std::ranges::elements_view::iterator

Synopsis
	template< bool Const >	(exposition only*)
	class /*iterator*/;

	The  return type of elements_view::begin, and of elements_view::end when
     the
	underlying view is a common_range.

	The type /*iterator*/<true> is returned  by  the  const-qualified  over-
     loads. The type
	/*iterator*/<false> is returned by the non-const-qualified overloads.

Member types
	Member type	  Definition
	Base (private)	  const V if Const is true, otherwise V.
			  (exposition-only member type*)
			  Denotes:
			    * std::random_access_iterator_tag, if Base models
			      random_access_range. Otherwise,
	iterator_concept    * std::bidirectional_iterator_tag, if Base models
			      bidirectional_range. Otherwise,
			    *  std::forward_iterator_tag,  if  Base  models for-
     ward_range.
			      Otherwise,
			    * std::input_iterator_tag.
			  Not defined, if Base	does  not  model  forward_range.
     Otherwise,
			    * std::input_iterator_tag, if std::get<N>(*current_)
     is an
			      rvalue. Otherwise, let C be the type
	iterator_category     std::iterator_traits<std::iterator_t<Base>>::iter-
     ator_category.
			    * std::random_access_iterator_tag, if C models
			      std::derived_from<std::random_access_itera-
     tor_tag>. Otherwise,
			    * C.
	value_type	  std::remove_cvref_t<std::tuple_element_t<N,
			  ranges::range_value_t<Base>>>
	difference_type   ranges::range_difference_t<Base>

	Data members

	Member object	   Definition
			   An  iterator of type ranges::iterator_t<Base> to cur-
     rent element
	current_ (private) of underlying sequence.
			   (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*	accesses the N^th tuple element
	(C++20) 	(public member function)
	operator[]	accesses an element by index
	(C++20) 	(public member function)
	operator++
	operator++(int)
	operator--	advances or decrements the underlying iterator
	operator--(int) (public member function)
	operator+=
	operator-=
	(C++20)

Non-member functions
	operator==
	operator<
	operator>   compares the underlying iterators
	operator<=  (function)
	operator>=
	operator<=>
	(C++20)
	operator+   performs iterator arithmetic
	operator-   (function)
	(C++20)

	Defect reports

	The following behavior-changing defect	reports  were  applied	retroac-
     tively to
	previously published C++ standards.

	   DR	  Applied  to	      Behavior as published		 Correct
     behavior
	P2259R1  C++20	    member iterator_category is always	 defined only if
     Base models
			    defined				 forward_range
	LWG 3555 C++20	    the definition of iterator_concept	  made	to  con-
     sider
			    ignores const

See also
	iterator the return type of ranges::transform_view::begin, and of
	(C++20)   ranges::transform_view::end when the underlying view is a com-
     mon_range
		 (private member class template)

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

home | help