std::ranges::transform_view<V,F>::iterator
From cppreference.com
< cpp | ranges | transform view
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Ranges library
(exposition only*)
(present only if
(exposition-only member object*)
(exposition-only member object*)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++26)(C++26)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)(C++23)
(C++23)
std::ranges::transform_view
(C++26)
Iterator
template< bool Const >
class /*iterator*/
(since C++20) class /*iterator*/
(exposition only*)
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.
[edit] Member types
Member type
Definition
iterator_concept
- std::random_access_iterator_tag , if
Base
modelsrandom_access_range
, - std::bidirectional_iterator_tag , if
Base
modelsbidirectional_range
, - std::forward_iterator_tag , if
Base
modelsforward_range
, - std::input_iterator_tag otherwise.
iterator_category
(present only if
Base
modelsforward_range
)
Let MCF
be maybe-const
<Const, F>.
- std::input_iterator_tag , if std::invoke_result_t <MCF&, ranges::range_reference_t <Base>> is not a reference.
Otherwise, let C
be std::iterator_traits <ranges::iterator_t <Base>>::iterator_category.
- std::random_access_iterator_tag , if
C
is std::contiguous_iterator_tag ; C
, otherwise.
value_type
std::remove_cvref_t <std::invoke_result_t <MCF&, ranges::range_reference_t <Base>>>, where MCF
denotes maybe-const
<Const, F>
difference_type
ranges::range_difference_t <Base>
[edit] Data members
Member name
Definition
current_
(private)
An iterator into (possibly const-qualified) V
.(exposition-only member object*)
parent_
(private)
A pointer to parent transform_view
.(exposition-only member object*)
[edit] Member functions
advances or decrements the underlying iterator
(public member function)
(public member function)
[edit] Non-member functions
compares the underlying iterators
(function)
(function)
[edit] 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
|
defined only if Base models forward_range
|
LWG 3555 | C++20 | the definition of iterator_concept ignores const
|
made to consider |
LWG 3798 | C++20 | iterator_category is input-only if transformation result is rvalue reference
|
may have a stronger category |