Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...ew::iterator(3) C++ Standard Libarystd::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,
       returned	by
	  zip_transform_view::begin   and   in	certain	 cases	by  zip_trans-
       form_view::end.

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

Member types
	  Member type	    Definition
			    zip_transform_view	if  Const  is	false,	 const
       zip_transform_view
	  Parent (private)  otherwise.
			    (exposition-only member type*)
	  Base	(private)    InnerView if Const	is false, const	InnerView oth-
       erwise.
			    (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_cat-
       egory...

			    If	/*Base*/  models  forward_range,  then	itera-
       tor_category 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_it-
       erator_tag> &&
			    ...) is true.
			      *	Otherwise, std::bidirectional_iterator_tag, if

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

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

			    Not	 present  if  /*Base*/	does  not  model  for-
       ward_range.
	  iterator_concept  /*ziperator*/<Const>::iterator_concept
			    Let	     /*RREF*/	   be	  ranges::range_refer-
       ence_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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::zip_transform_view::iterator&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help