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

NAME
     std::ranges::zip_transform_view::iterator	   -	 std::ranges::zip_trans-
     form_view::iterator

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

	The iterator type of a possibly const-qualified zip_transform_view,  re-
     turned by
	zip_transform_view::begin   and   in   certain	 cases	 by   zip_trans-
     form_view::end.

	The type /*iterator*/<true> or /*iterator*/<false> treats the underlying
     views as
	const-qualified or non-const-qualified respectively.

Member types
	Member type	  Definition
			  zip_transform_view if Const is false, const zip_trans-
     form_view
	Parent (private)  otherwise.
			  (exposition-only member type*)
	Base (private)	  InnerView if Const is false,	const  InnerView  other-
     wise.
			  (exposition-only member type*)
			  Let  /*maybe-const*/<Const,  F>&  denote  const  F& if
     Const is true,
			  F& otherwise.
			  Let /*maybe-const*/<Const, Views> denote  const  Views
     if Const is
			  true, Views otherwise.

			  Let /*POT*/ denote the pack of types
			  std::iterator_traits<std::iterator_t<
			      /*maybe-const*/<Const,	Views>>>::iterator_cate-
     gory...

			  If /*Base*/ models forward_range, then  iterator_cate-
     gory denotes:

			    * std::input_iterator_tag, if
			      std::invoke_result_t</*maybe-const*/<Const, F>&,
				  ranges::range_reference_t</*maybe-
     const*/<Const,
			      Views>>...>

	iterator_category is not a reference.
	(optional)	    * Otherwise,

			    * std::random_access_iterator_tag, if

			  (std::derived_from</*POT*/,  std::random_access_itera-
     tor_tag> &&
			  ...) is true.
			    * Otherwise, std::bidirectional_iterator_tag, if

			  (std::derived_from</*POT*/,  std::bidirectional_itera-
     tor_tag> &&
			  ...) is true.
			    * Otherwise, std::forward_iterator_tag, if

			  (std::derived_from</*POT*/, std::forward_iterator_tag>
     && ...) is
			  true.
			    * Otherwise, std::input_iterator_tag.

			  Not present if /*Base*/ does not model forward_range.
	iterator_concept  /*ziperator*/<Const>::iterator_concept
			  Let /*RREF*/ be ranges::range_reference_t<Views>...,
			  and	/*CRREF*/   be	 ranges::range_reference_t<const
     Views>.... Then:

	value_type	       *    std::remove_cvref_t<std::invoke_result_t<F&,
     /*RREF*/>> if
			      Const is false,
			    * std::remove_cvref_t<std::invoke_result_t<const F&,
     /*CRREF*/>>
			      otherwise.
	difference_type   range::range_difference_t</*Base*/>

	Data members

	Member object	  Definition
	parent_ (private) A pointer Parent* to the parent object
			  (exposition-only member object*)
	inner_ (private)  An iterator of type ziperator<Const>.
			  (exposition-only member type*)

Member functions
	constructor	constructs an iterator
	(C++23) 	(public member function)
	operator*	 obtains  the result of applying the invocable object to
     the
	(C++23) 	underlying poined-to elements
			(public member function)
	operator[]	obtains the result of applying the invocable  object  to
     the
	(C++23) 	underlying elements at given offset
			(public member function)
	operator++
	operator++(int)
	operator--	advances or decrements the underlying iterator
	operator--(int) (public member function)
	operator+=
	operator-=
	(C++23)

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

Example
	 This section is incomplete
	 Reason: no example

Category:
	  * Todo no example

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

home | help