std::ranges::adjacent_transform_view<V,F,N>::iterator

From cppreference.com
 
 
Ranges library
Range access
Range conversions
(C++23)
Range primitives



Dangling iterator handling
Range concepts
Views

Range factories
Range adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
(until C++23)(C++23)


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

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

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

The name of this class template (shown here as /*iterator*/) is unspecified.

Data members

Typical implementations of /*iterator*/ hold two non-static data members:

These names are for exposition only.

Member types

Member type Definition
Parent (private) const ranges::adjacent_transform_view, if Const is true. Otherwise, ranges::adjacent_transform_view. The name is for exposition only.
Base (private) const V, if Const is true. Otherwise, V. The name is for exposition only.
iterator_category
std::invoke_result_t</*maybe-const*/<Const, F>&,
                     /*REPEAT*/(ranges::range_reference_t<Base>, N)...>
is not a reference. Otherwise,
iterator_concept typename /*inner-iterator*/<Const>::iterator_concept;.
value_type

std::remove_cvref_t<std::invoke_result_t</*maybe-const*/<Const, F>&,
                    /*REPEAT*/(ranges::range_reference_t<Base>, N)...>>;

difference_type ranges::range_difference_t<Base>

Member functions

constructs an iterator
(public member function)
(C++23)
accesses the element
(public member function)
accesses an element by index
(public member function)
advances or decrements the underlying iterators
(public member function)

Non-member functions

compares the underlying iterators
(function)
performs iterator arithmetic
(function)

Example

References

  • C++23 standard (ISO/IEC 14882:2023):
  • 26.7.27.3 Class template adjacent_transform_view::iterator [range.adjacent_transform.iterator]

See also