erator_ :: _iterator_
](/w/cpp/ranges/transform_view/iterator/iterator "cpp/ranges/transform
view/iterator/iterator")  
[ transform_view:: _iterator_ ::base
](/w/cpp/ranges/transform_view/iterator/base "cpp/ranges/transform
view/iterator/base")  
[ transform_view:: _iterator_ ::operator*
](/w/cpp/ranges/transform_view/iterator/operator* "cpp/ranges/transform
view/iterator/operator*")  
[ transform_view:: _iterator_ ::operator[]
](/w/cpp/ranges/transform_view/iterator/operator_at "cpp/ranges/transform
view/iterator/operator at")  
[ transform_view:: _iterator_ ::operator++  
transform_view:: _iterator_ ::operator++  (int)  
transform_view:: _iterator_ ::operator--  
transform_view:: _iterator_ ::operator--  (int)  
transform_view:: _iterator_ ::operator+=  
transform_view:: _iterator_ ::operator-=
](/w/cpp/ranges/transform_view/iterator/operator_arith "cpp/ranges/transform
view/iterator/operator arith")  
[ operator==  (transform_view:: _iterator_ )  
operator< (transform_view:: _iterator_ )  
operator> (transform_view:: _iterator_ )  
operator<=  (transform_view:: _iterator_ )  
operator>=  (transform_view:: _iterator_ )  
operator<=> (transform_view:: _iterator_ )
](/w/cpp/ranges/transform_view/iterator/operator_cmp "cpp/ranges/transform
view/iterator/operator cmp")  
[ operator+  (transform_view:: _iterator_ )  
operator-  (transform_view:: _iterator_ )
](/w/cpp/ranges/transform_view/iterator/operator_arith2 "cpp/ranges/transform
view/iterator/operator arith2")  
[ iter_move  (transform_view:: _iterator_ )
](/w/cpp/ranges/transform_view/iterator/iter_move "cpp/ranges/transform
view/iterator/iter move")  
[ Sentinel ](/w/cpp/ranges/transform_view/sentinel "cpp/ranges/transform
view/sentinel")  
[ transform_view:: _sentinel_ :: _sentinel_
](/w/cpp/ranges/transform_view/sentinel/sentinel "cpp/ranges/transform
view/sentinel/sentinel")  
[ transform_view:: _sentinel_ ::base
](/w/cpp/ranges/transform_view/sentinel/base "cpp/ranges/transform
view/sentinel/base")  
[ operator==  (transform_view:: _iterator_ ,transform_view:: _sentinel_ )
](/w/cpp/ranges/transform_view/sentinel/operator_cmp "cpp/ranges/transform
view/sentinel/operator cmp")  
[ operator-  (transform_view:: _iterator_ ,transform_view:: _sentinel_ )
](/w/cpp/ranges/transform_view/sentinel/operator- "cpp/ranges/transform
view/sentinel/operator-")  
  
[ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/ranges/transform_view/navbar_content&action=edit)

Defined in header ` [ <ranges> ](/w/cpp/header/ranges "cpp/header/ranges") ` |  |   
---|---|---  
|  (1)  |   
template  < [ ranges::  input_range
](http://en.cppreference.com/w/cpp/ranges/input_range) V,  
[ std::  copy_constructible
](http://en.cppreference.com/w/cpp/concepts/copy_constructible) F  >  
requires [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) < V
> &&  
[ std::  is_object_v  ](http://en.cppreference.com/w/cpp/types/is_object) < F
> &&  
[ std::  regular_invocable
](http://en.cppreference.com/w/cpp/concepts/invocable) < F  & , [ ranges::
range_reference_t  ](http://en.cppreference.com/w/cpp/ranges/iterator_t) < V
>> &&  
/* invoke_result_t<F&, range_reference_t<V>>& is a valid type */  
class  transform_view  
:  public  [ ranges::  view_interface  ](http://en.cppreference.com/w/cpp/ranges/view_interface) < transform_view  < V, F  >> |  |  (since C++20)    
(until C++23)  
template  < [ ranges::  input_range
](http://en.cppreference.com/w/cpp/ranges/input_range) V,  
[ std::  move_constructible
](http://en.cppreference.com/w/cpp/concepts/move_constructible) F  >  
requires [ ranges::  view  ](http://en.cppreference.com/w/cpp/ranges/view) < V
> &&  
[ std::  is_object_v  ](http://en.cppreference.com/w/cpp/types/is_object) < F
> &&  
[ std::  regular_invocable
](http://en.cppreference.com/w/cpp/concepts/invocable) < F  & , [ ranges::
range_reference_t  ](http://en.cppreference.com/w/cpp/ranges/iterator_t) < V
>> &&  
/* invoke_result_t<F&, range_reference_t<V>>& is a