Boost logo

Boost :

From: Jeremy Siek (jsiek_at_[hidden])
Date: 2003-05-28 10:05:52

Hi David and Dave,

On Tue, 27 May 2003, David Abrahams wrote:

dave> David Pearce <djp1_at_[hidden]> writes:
dave> > David,
dave> >
dave> >> I think I had the same problems when I implemented the reverse_graph
dave> >> adaptor, and never found a good answer :(
dave> >
dave> > Thanks for the reply. Looking at the reverse_graph_adaptor, I notice
dave> > that you achieve what I want using the
dave> > "reverse_graph_*_property_selector" classes. But, what do these
dave> > actually do? Or, put another way, what needs to be implemented to make
dave> > get/put work in a similar fashion to that of reverse_graph ?
dave> >
dave> > Cheers,
dave> >
dave> > David Pearce
dave> I'm afraid all that stuff was added in version 1.10 by Jeremy. He'll
dave> have to fill you in.

That stuff has to do with accessing the type of an internal property map.
The user gets the map's type from the edge/vertex_property_map classes in
graph/properties.hpp. These classes then dispatch to the
vertex/edge_property_selector which is defined in property.hpp and fully
specialized for each graph class in their respective headers. The reason
for the extra levels of indirection was to avoid using partial
specialization so that this would all work on VC++.

As for what you need to do for the proxy graph... the reverse_graph is a
good example of what to do. You'll need to do all the same stuff.


 Jeremy Siek
 Ph.D. Student, Indiana Univ. B'ton email: jsiek_at_[hidden]
 C++ Booster ( office phone: (812) 855-3608

Boost list run by bdawes at, gregod at, cpdaniel at, john at