4#ifndef _Stroika_Foundation_Traversal_DelegatedIterator_h_
5#define _Stroika_Foundation_Traversal_DelegatedIterator_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Common/Common.h"
22namespace Stroika::Foundation::Traversal {
27 template <
typename T,
typename EXTRA_DATA =
void>
34 EXTRA_DATA fExtraData;
35 Rep (
const Iterator<T>& delegateTo,
const EXTRA_DATA& extraData = EXTRA_DATA ());
36 virtual unique_ptr<IRep> Clone ()
const override;
37 virtual void More (optional<T>* result,
bool advance)
override;
38 virtual bool Equals (
const IRep* rhs)
const override;
50 virtual unique_ptr<IRep> Clone ()
const override;
51 virtual void More (optional<T>* result,
bool advance)
override;
52 virtual bool Equals (
const IRep* rhs)
const override;
63#include "DelegatedIterator.inl"
Implementation detail for iterator implementors.
An Iterator<T> is a copyable object which allows traversing the contents of some container....