Skip to content

Latest commit

 

History

History
178 lines (158 loc) · 9.74 KB

iterator.md

File metadata and controls

178 lines (158 loc) · 9.74 KB

Header <iterator> implementation status

Reference
Implementation

  • : Cannot implement with language itself. Need compiler support. Used C++ N STL
  • : Partially implemented with C++ N
  • : Fully implemented with C++ N
  • : Not yet implemented
C++ ≤ 11 Features Implemented in
Classes
Primitives
iterator_traits
input_iterator_tag
output_iterator_tag
forward_iterator_tag
bidirectional_iterator_tag
random_access_iterator_tag
iterator Deprecated in C++17
Adaptors
reverse_iterator
move_iterator
back_insert_iterator
front_insert_iterator
insert_iterator
Stream Iterators
istream_iterator
ostream_iterator
istreambuf_iterator
ostreambuf_iterator
Functions
Adaptors
make_move_iterator
front_inserter
back_inserter
inserter
Non-member operators
(ss::move_iterator)
operator==
operator!=
operator<
operator<=
operator>
operator>=
operator+(ss::move_iterator)
operator-(ss::move_iterator)
(ss::reverse_iterator)
operator==
operator!=
operator<
operator<=
operator>
operator>=
operator+(ss::reverse_iterator)
operator-(ss::reverse_iterator)
(ss::istream_iterator)
operator==
operator !=
(ss::istreambuf_iterator)
operator==
operator !=
Operations
advance
distance
next
prev
Range access
begin
end
C++14 Features Implemented in
Functions
Adaptors
make_reverse_iterator
Range access
cbegin
cend
rbegin
crbegin
end
crend
C++17 Features Implemented in
Functions
Range access
size
empty
data
C++20 Features Implemented in
Concepts
Iterator concepts
indirectly_readable
indirectly_writable
weakly_incrementable
incrementable
input_or_output_iterator
sentinel_for
sized_sentinel_for
input_iterator
output_iterator
forward_iterator
bidirectional_iterator
random_access_iterator
Indirect callable concepts
indirectly_unary_invocable
indirectly_regular_unary_invocable
indirect_unary_predicate
indirect_binary_predicate
indirect_equivalence_relation
indirect_strict_weak_order
Common algorithm requirements
indirectly_movable
indirectly_movable_storable
indirectly_copyable
indirectly_copyable_storable
indirectly_swappable
indirectly_comparable
permutable
mergeable
sortable
Classes
Algorithm utilities
indirect_result_t
projected
Associated types
incrementable_traits
indirectly_readable_traits
iter_value_t
iter_reference_t
iter_difference_t
iter_rvalue_reference_t
iter_common_reference_t
Primitives
contiguous_iterator_tag
Adaptors
move_sentinel
common_iterator
default_sentinel_t
counted_iterator
unreachable_sentinel_t
Customization point objects Defined in namespace ss::ranges
iter_move
iter_swap
Functions Defined in namespace ss::ranges
Non-member operators
operator<=>(ss::move_iterator)
operator<=>(ss::reverse_iterator)
(ss::counted_iterator)
operator==
operator<=>
operator+(ss::counted_iterator)
operator-(ss::counted_iterator)
Operations
ranges::advance
ranges::distance
ranges::next
ranges::prev
Range access
ssize