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::transform_view::iterator	   -	   std::ranges::trans-
       form_view::iterator

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

	  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	 over-
       loads.

	  The name of this class template (shown here as iterator) is unspeci-
       fied.

	  Typical  implementation  holds  two  data  members: an iterator into
       (possibly
	  const-qualified) V, and a pointer to parent transform_view.

Member types
	  Member type	    Definition
	  Parent (private)  const ranges::transform_view<V,  F>	 if  Const  is
       true, otherwise
			    ranges::transform_view<V,  F>. The name is for ex-
       position	only.
	  Base (private)    const V if Const is	true, otherwise	V. The name is
       for exposition
			    only.
			    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 an	lvalue
       reference,
			    std::input_iterator_tag.
	  iterator_category
			    Else, let C	be
			    std::iterator_traits<ranges::itera-
       tor_t<Base>>::iterator_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>

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		  Cor-
       rect behavior
	  P2259R1  C++20      member  iterator_category	 is  always    defined
       only if Base models
			      defined					  for-
       ward_range
	  LWG 3555 C++20      the definition  of  iterator_concept    made  to
       consider
			      ignores const

http://cppreference.com		  2022.07.31	 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::transform_view::iterator&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help