ORIGINAL
Loading...
Searching...
No Matches
singleDirectionIterator.h
1#ifndef SINGLEDIRECTIONITERATOR_H
2#define SINGLEDIRECTIONITERATOR_H
3
4#include "stepIterator.h"
5
6namespace original {
7 template<typename TYPE>
8 class singleDirectionIterator : public stepIterator<TYPE> {
9 protected:
10 explicit singleDirectionIterator(wrapper<TYPE>* ptr);
11 public:
12 singleDirectionIterator(const singleDirectionIterator& other);
13 singleDirectionIterator& operator=(const singleDirectionIterator& other);
14 singleDirectionIterator* clone() const override;
15 };
16}
17
18 template<typename TYPE>
19 original::singleDirectionIterator<TYPE>::singleDirectionIterator(wrapper<TYPE>* ptr) : stepIterator<TYPE>(ptr) {}
20
21 template<typename TYPE>
22 original::singleDirectionIterator<TYPE>::singleDirectionIterator(const singleDirectionIterator &other)
23 : stepIterator<TYPE>(nullptr) {
24 this->operator=(other);
25 }
26
27 template<typename TYPE>
28 auto original::singleDirectionIterator<TYPE>::operator=(
30 if (this == &other) {
31 return *this;
32 }
33 stepIterator<TYPE>::operator=(other);
34 return *this;
35 }
36
37 template<typename TYPE>
38 auto original::singleDirectionIterator<TYPE>::clone() const -> singleDirectionIterator* {
39 return new singleDirectionIterator(*this);
40 }
41
42#endif //SINGLEDIRECTIONITERATOR_H
Definition singleDirectionIterator.h:8
Definition stepIterator.h:14
Definition wrapper.h:12