2 // GROUPS passed scope pt
10 friend class IListBase;
11 friend class IListIterBase;
15 Link::Link() : next_(0)
20 Link::Link(Link *next) : next_(next)
36 friend class IListIterBase;
40 IListBase::IListBase() : head_(0)
45 IListBase::IListBase(Link *head) : head_(head)
50 void IListBase::insert(Link *p)
57 Link *IListBase::head()
63 int IListBase::empty()
69 Link *IListBase::get()
76 template<class T> class IListIter;
79 class IList : private IListBase {
82 IList(T *p) : IListBase(p) { }
84 void append(T *p) { IListBase::append(p); }
85 void insert(T *p) { IListBase::insert(p); }
86 void remove(T *p) { IListBase::remove(p); }
87 T *head() { return (T *)IListBase::head(); }
88 T *get() { return (T *)IListBase::get(); }
89 IListBase::empty; // { dg-warning "deprecated" }
90 friend class IListIter<T>;
100 class IListIterBase {
102 IListIterBase(const IListBase &);
111 IListIterBase::IListIterBase(const IListBase &list) : p_(list.head_)
116 int IListIterBase::done()
122 Link *IListIterBase::cur()
128 void IListIterBase::next()
135 class IListIter : private IListIterBase {
137 IListIter(const IList<T> &list) : IListIterBase(list) { }
138 T *cur() { return (T *)IListIterBase::cur(); }
139 IListIterBase::next; // { dg-warning "deprecated" }
140 IListIterBase::done; // { dg-warning "deprecated" }
153 for (IListIter<Link> iter(list); !iter.done(); iter.next())