uous_iterator "cpp/iterator/contiguous iterator") (C++20)  |  specifies that a [ ` random_access_iterator ` ](/w/cpp/iterator/random_access_iterator "cpp/iterator/random access iterator") is a contiguous iterator, referring to elements that are contiguous in memory   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_contiguous_iterator&action=edit)  
  
#####  Indirect callable concepts  
  
[ indirectly_unary_invocable  indirectly_regular_unary_invocable  ](/w/cpp/iterator/indirectly_unary_invocable "cpp/iterator/indirectly unary invocable") (C++20)  (C++20)  |  specifies that a callable type can be invoked with the result of dereferencing an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirectly_unary_invocable&action=edit)  
[ indirect_unary_predicate  ](/w/cpp/iterator/indirect_unary_predicate "cpp/iterator/indirect unary predicate") (C++20)  |  specifies that a callable type, when invoked with the result of dereferencing an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type, satisfies [ ` predicate ` ](/w/cpp/concepts/predicate "cpp/concepts/predicate")   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirect_unary_predicate&action=edit)  
[ indirect_binary_predicate  ](/w/cpp/iterator/indirect_binary_predicate "cpp/iterator/indirect binary predicate") (C++20)  |  specifies that a callable type, when invoked with the result of dereferencing two [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") types, satisfies [ ` predicate ` ](/w/cpp/concepts/predicate "cpp/concepts/predicate")   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirect_binary_predicate&action=edit)  
[ indirect_equivalence_relation  ](/w/cpp/iterator/indirect_equivalence_relation "cpp/iterator/indirect equivalence relation") (C++20)  |  specifies that a callable type, when invoked with the result of dereferencing two [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") types, satisfies [ ` equivalence_relation ` ](/w/cpp/concepts/equivalence_relation "cpp/concepts/equivalence relation")   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirect_equivalence_relation&action=edit)  
[ indirect_strict_weak_order  ](/w/cpp/iterator/indirect_strict_weak_order "cpp/iterator/indirect strict weak order") (C++20)  |  specifies that a callable type, when invoked with the result of dereferencing two [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") types, satisfies [ ` strict_weak_order ` ](/w/cpp/concepts/strict_weak_order "cpp/concepts/strict weak order")   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirect_strict_weak_order&action=edit)  
  
#####  Common algorithm requirements  
  
[ indirectly_movable  ](/w/cpp/iterator/indirectly_movable "cpp/iterator/indirectly movable") (C++20)  |  specifies that values may be moved from an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type to an [ ` indirectly_writable ` ](/w/cpp/iterator/indirectly_writable "cpp/iterator/indirectly writable") type   
(concept)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/iterator/dsc_indirectly_movable&action=edit)  
[ indirectly_movable_storable  ](/w/cpp/iterator/indirectly_movable_storable "cpp/iterator/indirectly movable storable") (C++20)  |  specifies that values may be moved from an [ ` indirectly_readable ` ](/w/cpp/iterator/indirectly_readable "cpp/iterator/indirectly readable") type to