As long as you're making changes to subgraph anyway, something that really bugs me about it is the necessity to make the root graph itself be of subgraph type. While I can understand the reasoning, it would be nice if there were a way to simply make the root be a shallow wrapper around any particular graph.

I don't know how feasible this is, but I figured I'd ask.

It may be possible, but I'm not thinking too much about it right now.

I've just committed the beginning of this work. Now you can write:

g[v] -> returns the global bundle of v
g[global(v)] -> returns the global bundle for v
g[local(v)] -> returns the local bundle of v

typedef property_map<
  Subgraph, local_subgraph_property<int Node::*>
>::type Map;
Map pm = get(local(&Node::weight), g);

I'm not fully sold on the local_subgraph_property name. I could probably shorten it to local_property, and it would work just as well.

I haven't built explicit support for global bundled properties, and I need to extend the same support to the old-style properties.

Thoughts?

Andrew Sutton
andrew.n.sutton@gmail.com