diff options
Diffstat (limited to 'source/10-common/OpaqueIterator.hpp')
-rw-r--r-- | source/10-common/OpaqueIterator.hpp | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/source/10-common/OpaqueIterator.hpp b/source/10-common/OpaqueIterator.hpp deleted file mode 100644 index 128cbc6..0000000 --- a/source/10-common/OpaqueIterator.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -template <typename T> -class IOpaqueIterator { -public: - virtual ~IOpaqueIterator() = default; - virtual bool HasNext() const = 0; - virtual T Next() = 0; -}; - -template <typename TContainer> -class ContainerOpaqueIterator : public IOpaqueIterator<typename TContainer::reference_type> { -private: - typename TContainer::iterator mIter; - typename TContainer::const_iterator mEnd; - -public: - ContainerOpaqueIterator(TContainer& container) - : mIter{ container.begin() } - , mEnd{ container.end() } {} - - virtual bool HasNext() const override { - return mIter != mEnd; - } - - virtual typename TContainer::reference_type Next() override { - auto result = *mIter; - ++mIter; - return result; - } -}; |