[graph] vertex_property_selector

Hi, 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? Cheers, Jens
participants (1)
-
Jens Müller