9#if !defined(__lazyiterators_h)
10#define __lazyiterators_h
20 template <
class IT,
class T>
28 iter(source.iter) , lazyptr(source.lazyptr) { }
30 iter(sourceiter) , lazyptr(lazyp) { }
36 { ++iter;
return *
this; }
40 { --iter;
return *
this; }
43 { iter+=n;
return *
this; }
45 { iter-=n;
return *
this; }
62 {
return iter == it.iter; }
64 {
return iter != it.iter; }
66 {
return iter < it.iter; }
68 {
return iter > it.iter; }
70 {
return iter <= it.iter; }
72 {
return iter >= it.iter; }
76 { iter=source.iter; lazyptr = source.lazyptr;
return *
this; }
78 inline T& operator*()
const
79 { lazyptr->set_whole_cache_validity(
false);
return *iter;}
80 inline T& operator[](
int n)
const {
return *(
this + n); }
95 template <
class IT,
class T>
103 iter(source.iter) , lazyptr(source.lazyptr) { }
105 iter(sourceiter) , lazyptr(lazyp) { }
111 { ++iter;
return *
this; }
115 { --iter;
return *
this; }
118 {
return iter == it.iter; }
120 {
return iter != it.iter; }
124 { iter=source.iter; lazyptr = source.lazyptr;
return *
this; }
126 inline T& operator*()
const
127 { lazyptr->set_whole_cache_validity(
false);
return *iter;}
141 template <
class IT,
class T>
149 iter(source.iter) , lazyptr(source.lazyptr) { }
151 iter(sourceiter) , lazyptr(lazyp) { }
157 { ++iter;
return *
this; }
160 {
return iter == it.iter; }
162 {
return iter != it.iter; }
166 { iter=source.iter; lazyptr = source.lazyptr;
return *
this; }
168 inline T& operator*()
const
169 { lazyptr->set_whole_cache_validity(
false);
return *iter;}
Definition: lazyiterators.h:96
Definition: lazyiterators.h:142
Definition: lazyiterators.h:21