
Hi, all. 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> 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. 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. Feedback welcome! Cromwell D. Enage

Hi Cromwell, 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.
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. [I'm dying to talk with you about the tree stuff, because I can't really do Fusion.Graph without also considering Fusion.Tree --- but I've got a lot of other stuff on my plate, so it'll have to wait a little while.] 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.
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. Cheers, Gordon

Hi Cromwell,
Hey, Gordon. 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
participants (2)
-
Cromwell Enage
-
Gordon Woodhull