From: Jens Müller (jens.mueller_at_[hidden])
Date: 2007-03-12 12:24:05
I'm currently trying to write a bidirected graph adapter (which in short
takes a bidirectional graph and doubles all edges, so the graph is
bidirected, I don't care whether that creates parallel edges). This is
useful e.g. for search algorithms that expect a directed graph and
follows edges only in their true direction.
I've taken <boost/graph/reverse_graph.hpp> as a start, and I am
currently working on property maps.
In reverse_graph.hpp, I found a specialization of
vertex_property_selector (and edge_property_selector). Google shows only
code for that word, no documentation.
How exactly is this supposed to work? When I need the type of a pmap
given a Graph and a Tag, some traits class (which?) looks at the
graph_tag of my graph, takes the class given as type in
vertex_property_selector<graph_tag> and specialized the bind_ member of
that type? Is this right?
So, I can have s spezialization of bind_ for a specific Tag, right? I
want to pass on all property accesses to the underlying graph, except
edge_index_t: I want to double that and add 1 for the reverse edges, so
I can create a iterator_property_map based on edge_index when I need it.
Oh, and what is the purpose of the Property template parameter of bind_?
When this is finished, is there any interest to have that adapter in BGL?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk