#ifndef ENUMERATOR_H_INCLUDED
#define ENUMERATOR_H_INCLUDED

template <class Item>
class Enumerator
{
    public:
        virtual void First() = 0;
        virtual void Next() = 0;
        virtual bool End() const = 0;
        virtual Item Current() const = 0;
        virtual ~Enumerator(){}
};

#endif /*ENUMERATOR_H_INCLUDED*/