27 #ifndef COSMO_ENUMERABLE_H
28 #define COSMO_ENUMERABLE_H
30 #include <Pt/Cosmo/IEnumerable.h>
31 #include <Pt/Cosmo/IAutoReleasePool.h>
44 template <
typename Container,
class T =
typename Container::value_type>
50 typedef typename IEnumeration<T>::Reference Reference;
53 Enumeration(
const Container& container)
54 : _container(container)
55 , _it( container.begin() )
59 virtual bool onIsValid()
const override
61 return _it != _container.end();
64 virtual void onAdvance()
override
69 virtual Reference onGet()
const override
75 const Container& _container;
76 typename Container::const_iterator _it;
83 , _container(&container)
96 _container = &container;
102 Enumeration* e =
new Enumeration(*_container);
108 Container* _container;
115 #endif // include guard
Core module.
Definition: Allocator.h:33
Enumerable interface.
Definition: IEnumerable.h:58
Enumerator implementation.
Definition: IEnumerable.h:118
Makes any standard C++ container enumerable.
Definition: Enumerable.h:46
Auto-release pool interface.
Definition: IAutoReleasePool.h:46
Enumerator for IEnumerables.
Definition: IEnumerable.h:283