Spec-Zone.ru › C++

Именованные требования C++: LegacyContiguousIterator (начиная с C++17)

LegacyContiguousIterator — это LegacyIterator, логически смежные элементы которого также физически расположены в памяти рядом.

Указатель на элемент массива удовлетворяет всем требованиям LegacyContiguousIterator.

Требования

Тип It удовлетворяет требованиям LegacyContiguousIterator, если

  • тип It удовлетворяет требованиям LegacyIterator

и для любых

  • a — разыменовываемый итератор типа It
  • n — целочисленное значение

таких, что

  • a + n является допустимым и разыменовываемым значением итератора

тогда

  • *(a + n) эквивалентно *(std::addressof(*a) + n).

Стандартная библиотека

Следующие типы стандартной библиотеки являются LegacyContiguousIterators.

  • array::iterator и array::const_iterator.
  • basic_string_view::iterator.
  • basic_string::iterator и basic_string::const_iterator.
  • vector::iterator и vector::const_iterator для value_type, отличных от bool.
  • valarray::iterator и valarray::const_iterator.

Примечания

Fancy pointer на типы объектов также должны удовлетворять требованиям LegacyContiguousIterator.

LegacyContiguousIterator заменён концептом contiguous_iterator: типы итераторов стандартной библиотеки, которые в C++17 должны удовлетворять требованиям LegacyContiguousIterator, в C++20 должны моделировать contiguous_iterator.

(начиная с C++20)

См. также

contiguous_iterator
(C++20)
задаёт, что random_access_iterator является непрерывным итератором, ссылающимся на элементы, расположенные в памяти рядом
(концепт)
Библиотека итераторов предоставляет определения итераторов, характеристик итераторов, адаптеров и вспомогательных функций

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/ContiguousIterator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API