$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Andy Glew (glew_at_[hidden])
Date: 1999-09-24 10:34:59
A whole slew of us are creating one-of idiosyncratic solutions.
This is why I would like to create a generic framework.
For example, if I understand the docs and code correctly,
your
IntrusiveList<T>
works fine, so long as an object is on only one list.
The object has to inherit from ListNode<T>.
Trouble is, most interesting data structures have objects
on multiple lists simultaneously, and want to "cross over"
from one to the other. I call this a "multicontainer".
Previous solutions have accomplished this using multiple
inheritance - IMHO polluting the namespace by adding
intermediate classes for the different types of links an object
can be on.
template<class T> class ListNode1<T> : ListNode<T> {}
template<class T> class ListNode2<T> : ListNode<T> {}
struct Data : ListNode1<T>, ListNode2<T> {}
Now Data can be on multiple lists...
I much prefer the pointer to member solution:
IntrusiveList<class T, IntrusiveListLinkage T::*linkage>
Particularly if a default can be used (I haven't tried this).
I'd like to extend this to all STL containers, in the easiest possible
(least coding) way. Although I recognize that STL containers may
not be the optimal data structures for this sort of application, they
are something.
Valentin Bonnard wrote:
> > At this time I invite those of you who have in the past expressed
> > interest in such data structures to contact me, so that we can explore
> > the space of useful and convenient interfaces.
>
> See my IntrusiveList STL container, at:
>
> http://www.eleves.ens.fr:8080/home/bonnard/IntrusiveList/
>
> Summary: it's basically a std::list, except that each
> element has a back-link to the list. (So that
> list.front().get_container() is list.)
>
> --
>
> Valentin Bonnard
>
> ------------------------------------------------------------------------
>
> eGroups.com home: http://www.egroups.com/group/boost
> http://www.egroups.com - Simplifying group communications
-- --- Andy "Krazy" Glew, glew_at_[hidden], UW Madison and Intel. DISCLAIMER: private posting, not representative of university or Intel. Please respond by email in addition to replying to newsgroup.