GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::ranges::transform_view::iterator(3) C++ Standard Libary std::ranges::transform_view::iterator(3)

std::ranges::transform_view::iterator - std::ranges::transform_view::iterator


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


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


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 exposition 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 forward_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::iterator_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>


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)


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 retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
P2259R1 C++20 member iterator_category is always defined only if Base models
defined forward_range
LWG 3555 C++20 the definition of iterator_concept made to consider
ignores const

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.