1#ifndef DOUBLEDIRECTIONITERATOR_H
2#define DOUBLEDIRECTIONITERATOR_H
3#include "stepIterator.h"
6 template<
typename TYPE>
7 class doubleDirectionIterator :
public stepIterator<TYPE> {
11 doubleDirectionIterator(
const doubleDirectionIterator& other);
12 doubleDirectionIterator& operator=(
const doubleDirectionIterator& other);
13 doubleDirectionIterator* clone()
const override;
14 [[nodiscard]]
bool hasPrev()
const override;
15 void prev()
const override;
19 template<
typename TYPE>
20 original::doubleDirectionIterator<TYPE>::doubleDirectionIterator(wrapper<TYPE>* ptr)
21 : stepIterator<TYPE>(ptr) {}
23 template<
typename TYPE>
26 this->operator=(other);
29 template<
typename TYPE>
30 original::doubleDirectionIterator<TYPE> & original::doubleDirectionIterator<TYPE>::operator=(
35 this->stepIterator<TYPE>::operator=(other);
39 template<
typename TYPE>
40 bool original::doubleDirectionIterator<TYPE>::hasPrev()
const {
41 return this->isValid();
44 template<
typename TYPE>
45 void original::doubleDirectionIterator<TYPE>::prev()
const {
47 this->_ptr = this->_ptr->getPPrev();
50 template<
typename TYPE>
Definition doubleDirectionIterator.h:7
Definition stepIterator.h:14