Subject: Re: [boost] [BGL] container_gen
From: Cromwell Enage (sponage_at_[hidden])
Date: 2011-09-21 15:38:07
> Hi Cromwell,
On Wednesday, September 21, 2011 1:36 PM, Gordon Woodhull wrote:
> On Sep 21, 2011, at 11:40 AM, Cromwell Enage wrote:
> > After a bit of a programming hiatus, I've managed to follow up on our container_gen discussion
> > we had last May, archived here: <http://article.gmane.org/gmane.comp.lib.boost.devel/219238>
> Sorry for the slow response - I've been in transit and starting an exciting new job.
Same here, actually!
> > I've created a branch in the sandbox called utility-container_gen that
> > places the metafunction in Boost.Utility, changes
> > detail::is_random_access to is_random_access_selector, provides an
> > is_unique_associative_selector metafunction, and changes adjacency_list
> > and parallel_edge_traits to use said utilities. Plus, there's Quickbook documentation.
> This looks really great. It's wonderful have this properly documented.
> My only concern about the documentation is that it jumps without warning into Tree documentation,
> which is confusing.
Were you examining the associative_container_gen documentation? I'll try to come up with a simple use case for it instead of referring to the Tree stuff.
> Also the documentation says there is a dependency on type traits operators, but doesn't say why.
> I mean to investigate this myself, but perhaps you should also state why in the doc.
The dependency is optional and currently turned off. Only in cases when one needs to nest associative containers via container_gen does one have to turn it on via the preprocessor definition, e.g.:
typedef container_gen<multisetS,container_gen<hash_setS,int>::type>::type SetOfSetsOfInts;
I'll make sure to stress that this dependency doesn't need to be turned on if users won't need this capability.
> > I've tested a few example programs in the BGL to make sure they still
> > work, but I feel that's far from being thorough. No selectors for
> > Boost.Intrusive have been implemented, yet.
> As I mentioned before, Boost.Intrusive selectors would also have to generate some data to be put into the individual vertices/edges. I don't know yet whether it will be easy to add these to BGL objects.
I'll also strive to become more familiar with Boost.Intrusive when I get the chance.
Cromwell D. Enage
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk