9 // An iterator's typical use is a loop, but you have an abstraction over
10 // the loop's initialization, step and end-test.
12 // foo_iterator foo_loop = ...;
13 // while (!foo_loop.endp()) {
14 // foo element = foo_loop.next();
17 // It is allowed to call endp() as many times as you want, and to terminate
18 // the loop any time you want.
21 class cl_abstract_iterator {
23 virtual bool endp () = 0;
24 virtual T& next () = 0;
28 #endif /* _CL_ITERATOR_H */