Шаблон:Архитектурная акустика/Реализация/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 | Возвращает текущий корневой адаптированный, возможно цепочкой адаптеров, итератор. |