1#ifndef DOUBLEDIRECTIONITERATOR_H
2#define DOUBLEDIRECTIONITERATOR_H
23 template<
typename TYPE>
62 void prev()
const override;
66 template<
typename TYPE>
70 template<
typename TYPE>
76 template<
typename TYPE>
86 template<
typename TYPE>
88 return this->isValid();
91 template<
typename TYPE>
94 this->_ptr = this->_ptr->getPPrev();
97 template<
typename TYPE>
Abstract base class for double-direction iterators.
Definition doubleDirectionIterator.h:24
doubleDirectionIterator & operator=(const doubleDirectionIterator &other)
Copy assignment operator for doubleDirectionIterator.
Definition doubleDirectionIterator.h:77
doubleDirectionIterator * clone() const override
Creates a heap-allocated copy of the iterator.
Definition doubleDirectionIterator.h:98
doubleDirectionIterator(wrapper< TYPE > *ptr)
Protected constructor for doubleDirectionIterator.
Definition doubleDirectionIterator.h:67
bool hasPrev() const override
Checks if the iterator can move backward.
Definition doubleDirectionIterator.h:87
void prev() const override
Moves the iterator to the previous element.
Definition doubleDirectionIterator.h:92
Exception for null pointer dereference attempts.
Definition error.h:245
Unique ownership smart pointer with move semantics.
Definition ownerPtr.h:37
Abstract base class for step iterators.
Definition stepIterator.h:38
stepIterator & operator=(const stepIterator &other)
Copy assignment operator for stepIterator.
Definition stepIterator.h:221
Main namespace for the project Original.
Definition algorithms.h:21
Step iterator base class for single-step iterators.