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

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

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

	The  return  type  of  transform_view::begin, and of transform_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
			  const  ranges::transform_view<V,  F> if Const is true,
     otherwise
	Parent (private)  ranges::transform_view<V, F>.
			  (exposition-only member type*)
	Base (private)	  const V if Const is true, otherwise V.
			  (exposition-only member type*)
			  std::random_access_iterator_tag if Base models
			  random_access_range,
	iterator_concept  std::bidirectional_iterator_tag if Base models
			  bidirectional_range,
			  std::forward_iterator_tag   if   Base   models    for-
     ward_range,
			  std::input_iterator_tag otherwise.
			  Not defined if Base does not model forward_range.
			  Otherwise, if std::invoke_result_t<F&,
			  ranges::range_reference_t<Base>> is not a reference,
			  std::input_iterator_tag.
	iterator_category
			  Else, let C be
			  std::iterator_traits<ranges::iterator_t<Base>>::itera-
     tor_category.
			  If C is std::contiguous_iterator_tag, the type is
			  std::random_access_iterator_tag;  otherwise,	the type
     is C.
	value_type	  std::remove_cvref_t<std::invoke_result_t<F&,
			  ranges::range_reference_t<Base>>>
	difference_type   ranges::range_difference_t<Base>

	Data members

	Member object	   Definition
	current_ (private) An iterator into (possibly const-qualified) V.
			   (exposition-only member object*)
	parent_ (private)  A pointer to parent transform_view.
			   (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 transformed 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)
	iter_move   obtains an rvalue reference to the transformed element
	(C++20)     (function)

	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 defined
     only if Base
								       models
     forward_range
	LWG 3555 C++20	    the definition of iterator_concept ignores	made  to
     consider
			    const
	LWG  3798 C++20      iterator_category is input-only if 	may have
     a stronger
			    transformation result is rvalue reference  category

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

home | help