1#ifndef DOUBLEDIRECTIONITERATOR_H
2#define DOUBLEDIRECTIONITERATOR_H
23 template<
typename TYPE>
56 [[nodiscard]]
bool hasPrev()
const override;
62 void prev()
const override;
66 template<
typename TYPE>
70 template<
typename TYPE>
76 template<
typename TYPE>
86 template<
typename TYPE>
91 template<
typename TYPE>
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:110
wrapper< TYPE > * _ptr
Pointer to the current wrapper.
Definition stepIterator.h:39
stepIterator(wrapper< TYPE > *ptr)
Protected constructor for derived classes.
Definition stepIterator.h:184
stepIterator & operator=(const stepIterator &other)
Copy assignment operator for stepIterator.
Definition stepIterator.h:224
bool isValid() const override
Checks if the iterator is valid.
Definition stepIterator.h:351
Base class for linked value containers with formatted output.
Definition wrapper.h:28
Main namespace for the project Original.
Definition algorithms.h:21
Step iterator base class for single-step iterators.