3 pcursor.hh -- part of flowerlib
5 (c) 1996 Han-Wen Nienhuys&Jan Nieuwenhuizen
12 /// cursor to go with PointerList
14 struct PCursor : public Cursor<void *> {
16 /// make cursor with #no# items back
17 PCursor<T> operator -( int no) const {
18 return PCursor<T> (Cursor<void*>::operator-(no));
20 int operator -(PCursor<T> op) const {
21 return Cursor<void*>::operator-(op);
23 /// make cursor with #no# items further
24 PCursor<T> operator +( int no) const {
25 return PCursor<T> (Cursor<void*>::operator+(no));
27 PCursor(const PointerList<T> & l) : Cursor<void*> (l) {}
29 PCursor( const Cursor<void*>& cursor ) : Cursor<void*>(cursor) { }
30 void* vptr() const { return * ((Cursor<void*> &) *this); }
33 T ptr() const { return (T) vptr(); }
34 T operator ->() const { return ptr(); }
35 operator T() { return ptr(); }
36 T operator *() { return ptr(); }
39 // Cursor<void*>::operator void*;
43 don't create PointerList<void*>'s
48 inline int pcursor_compare(PCursor<T> a,PCursor<T>b)
50 return cursor_compare(Cursor<void*>(a),Cursor<void*> (b));
54 template_instantiate_compare(PCursor<T>, pcursor_compare, template<class T>);