alue_t "cpp/iterator/projected value t") (C++26)  |  computes the value type of an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type by projection   
(alias template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_projected_value_t&action=edit)  
  
#####  Associated types  
  
[ incrementable_traits  ](/w/cpp/iterator/incrementable_traits "cpp/iterator/incrementable traits") (C++20)  |  computes the difference type of a [ ` weakly_incrementable ` ](/w/cpp/iterator/weakly_incrementable "cpp/iterator/weakly incrementable") type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_incrementable_traits&action=edit)  
[ indirectly_readable_traits  ](/w/cpp/iterator/indirectly_readable_traits "cpp/iterator/indirectly readable traits") (C++20)  |  computes the value type of an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirectly_readable_traits&action=edit)  
[ iter_value_t  iter_reference_t  iter_const_reference_t  iter_difference_t  iter_rvalue_reference_t  iter_common_reference_t  ](/w/cpp/iterator/iter_t "cpp/iterator/iter t") (C++20)  (C++20)  (C++23)  (C++20)  (C++20)  (C++20)  |  computes the associated types of an iterator   
(alias template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_iter_t&action=edit)  
  
#####  Primitives  
  
[ iterator_traits  ](/w/cpp/iterator/iterator_traits "cpp/iterator/iterator traits") |  provides uniform interface to the properties of an iterator   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_iterator_traits&action=edit)  
[ input_iterator_tag  output_iterator_tag  forward_iterator_tag  bidirectional_iterator_tag  random_access_iterator_tag  contiguous_iterator_tag  ](/w/cpp/iterator/iterator_tags "cpp/iterator/iterator tags") (C++20)  |  empty class types used to indicate iterator categories   
(class)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_iterator_tags&action=edit)  
[ iterator  ](/w/cpp/iterator/iterator "cpp/iterator/iterator") (deprecated in C++17)  |  base class to ease the definition of required types for simple iterators   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_iterator&action=edit)  
  
#####  Adaptors  
  
[ reverse_iterator  ](/w/cpp/iterator/reverse_iterator "cpp/iterator/reverse iterator") |  iterator adaptor for reverse-order traversal   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_reverse_iterator&action=edit)  
[ move_iterator  ](/w/cpp/iterator/move_iterator "cpp/iterator/move iterator") (C++11)  |  iterator adaptor which dereferences to an rvalue   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_move_iterator&action=edit)  
[ move_sentinel  ](/w/cpp/iterator/move_sentinel "cpp/iterator/move sentinel") (C++20)  |  sentinel adaptor for use with  [ std::move_iterator ](/w/cpp/iterator/move_iterator "cpp/iterator/move iterator")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_move_sentinel&action=edit)  
[ basic_const_iterator  ](/w/cpp/iterator/basic_const_iterator "cpp/iterator/basic const iterator") (C++23)  |  iterator adaptor that converts an iterator into a constant iterator   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_basic_const_iterator&action=edit)  
[ const_iterator  ](/w/cpp/iterator/const_iterator "cpp/iterator/const iterator") (C++23)  |  computes a constant iterator type for a given type   
(al