Шаблон:Архитектурная акустика/Реализация/IteratorAdapterConditional body
Версия от 02:02, 9 января 2018; Андрей Чусов (обсуждение | вклад)
template <class _BaseIterator, class _Predicate, class _IsDeref>
class IteratorAdapterConditional;
| _BaseIterator | Тип преобразуемого адаптером итератора. Должен удовлетворять требованиям ForwardIterator. |
| _Predicate | Тип предиката, при перечислении осуществляющего проверку условия остановки переходов. Предикат должен принимать единственный параметр, который может быть:
Вызов предиката должен быть однозначен и соответствовать только одному из вышеупомянутых случаев, поэтому в качестве предиката не допускается использование шаблонов или обобщенных лямбда-выражений. Также предикат должен удовлетворять требованиям CopyConstructible и CopyAssignable. |
| _IsDeref | Предикат, проверяющий возможность перехода итератором _BaseIterator к следующему элементу путем инкремента. Тип должен удовлетворять требованиям CopyConstructible и CopyAssignable. |
Открытые типы
| Тип | Описание |
|---|---|
| iterator | Тип _BaseIterator. |
| iterator_category | Категория итератора. Тип эквивалентен std::forward_iterator_tag. |
| value_type | Тип typename std::iterator_traits<iterator>::value_type. |
| reference | Тип typename std::iterator_traits<iterator>::reference. |
| pointer | Тип typename std::iterator_traits<iterator>::pointer. |
| difference_type | Тип typename std::iterator_traits<iterator>::difference_type. |
| predicate | Тип предиката необходимости перехода. Тип эквивалентен _Predicate. |
| iterator_predicate | Тип предиката возможности перехода. Тип эквивалентен _IsDeref. |
Открытые методы
| Метод | Описание |
|---|---|
| (конструкторы) | Конструкторы класса IteratorAdapterConditional. |
| operator= | Операторы присваивания. |
| operator* | Оператор разыменовывания. |
| operator-> | Оператор косвенного доступа к элементам. |
| operator++ | Переход итератора к следующему элементу, удовлетворяющему предикату IteratorAdapterConditional::predicate. |
| operator== | Проверка на эквивалентность итераторов. |
| operator!= | Проверка на неэквивалентность итераторов. |
| base | Возвращает адаптируемый итератор в текущей позиции. |
| adaptation_base | Возвращает текущий корневой адаптированный, возможно цепочкой адаптеров, итератор. |