C++ named requirements: LegacyContiguousIterator (since C++17) (original) (raw)
A LegacyContiguousIterator is a LegacyIterator whose logically adjacent elements are also physically adjacent in memory.
A pointer to an element of an array satisfies all requirements of LegacyContiguousIterator.
[edit] Requirements
The type It satisfies LegacyContiguousIterator if
- The type It satisfies LegacyIterator
And, for every
- a, a dereferenceable iterator of type It
- n, an integral value
such that
- a + n is a valid and dereferenceable iterator value
then
- *(a + n) is equivalent to *(std::addressof(*a) + n).
[edit] Standard library
The following standard library types are LegacyContiguousIterators.
- array::iterator.
- basic_string_view::iterator.
- basic_string::iterator.
- vector::iterator for
value_typeother than bool. - The return type of begin(valarray) and end(valarray).
[edit] Notes
Fancy pointer to object types are also required to satisfy LegacyContiguousIterator.
| LegacyContiguousIterator is replaced with the contiguous_iterator concept: iterator types in the standard library that are required to satisfy LegacyContiguousIterator in C++17 are required to model contiguous_iterator in C++20. | (since C++20) |
|---|