148 return static_cast<T*
>(this->
the_last);
154 return (elem ==
last()) ? 0 : elem->next();
160 return (elem ==
first()) ? 0 : elem->prev();
173 last()->next() = elem;
174 elem->prev() =
last();
187 elem->next() =
first();
188 first()->prev() = elem;
205 elem->next() =
after->next();
206 elem->prev() =
after;
207 after->next() = elem->next()->prev() = elem;
239 list.first()->prev() =
after;
240 after->next() = list.first();
245 list.
last()->next()->prev() = list.
last();
269 else if(elem ==
last())
273 elem->next()->prev() = elem->prev();
274 elem->prev()->next() = elem->next();
281 if(
first() != 0 && list.first() != 0)
286 if(
first() == list.first())
326 for(elem =
last(); elem; elem =
prev(elem))
328 elem->prev() =
reinterpret_cast<T*
>(
329 reinterpret_cast<char*
>(elem->prev()) + delta);
336#ifdef ENABLE_CONSISTENCY_CHECKS
Safe arrays of data objects.
T & last()
reference last element.
IdElement(const T &old)
copy constructor.
IdElement< T > *const & next() const
returns the next element in the IdList.
IdElement()
default constructor.
IdElement< T > *const & prev() const
returns the previous element in the IdList.
IdElement< T > *& prev()
returns the previous element in the IdList (writeable).
IdElement< T > *& next()
returns the next element in the IdList (writeable).
IdElement< T > * theprev
pointer to previous element in the IdList
IdElement< T > * thenext
pointer to next element in the IdList
Generic Real linked list.
void remove(T *elem)
removes elem from list.
T * last() const
returns last element in list.
T * first() const
returns first element in list.
void prepend(IdList< T > &list)
prepends list at beginnig of list.
void append(IdList< T > &list)
appends list to end of list.
bool isConsistent() const
consistency check.
void insert(T *elem, T *after)
inserts elem after after.
void append(T *elem)
appends elem to end of list.
T * prev(const T *elem) const
returns predecessor of elem or 0, if elem is the first element.
void remove_next(T *after)
removes element following after.
IdList(T *pfirst=0, T *plast=0, bool pDestroyElements=false)
default constructor.
void prepend(T *elem)
prepends elem at beginnig of list.
void insert(IdList< T > &list, T *after)
inserts list after after.
T * next(const T *elem) const
returns successor of elem or 0, if elem is the last element.
void remove(IdList< T > &list)
removes sublist list.
void move(ptrdiff_t delta)
adjusts list pointers to a new memory address.
Generic single linked list.
bool isConsistent() const
consistency check.
T * the_last
the last element in the IsList.
T * the_first
the first element in the IsList.
int find(const T *elem) const
returns the position of element elem within IsList.
void move(ptrdiff_t delta)
adjusts list pointers to a new memory address.
Generic single linked list.
Everything should be within this namespace.
Debugging, floating point type and parameter definitions.
#define MSGinconsistent(name)