FYI, the 2-argument version of add_vertex doesn't work on subgraphs. I suspect the same is true of the other functions that take properties objects.

That doesn't surprise me. I noticed that subgraph was failing one of the property tests in my new test harness just before I left school. I probably won't have a chance to take a good look why until Friday.

After some digging (and trying to implement add_vertex(vp, g) for subgraphs), it turns out that that the bundled property support for subgraphs seems to be fundamentally broken - sorry Dmitry :) The fault really lies, I think, with the design of the subgraph class w.r.t. properties. Discussion follows:

Every subgraph object keeps a pointer to its parent (the object being subgraphed) and a local graph. The problem is that the local is also declared to store the properties of the global graph so there are lots of places where property values could be applied to both vertices and edges.

With non-bundled properties, the subgraph uses a speciialized property map that delegates requests for properties to the root graph. We probably need to duplicate this effort for bundled proprties. I'm going to reopen the ticket that was closed 4 years ago (#380).

If anybody wants to take a stab at this, that would be great :) Otherwise, I'll probably work on this on Monday.

Andrew Sutton
andrew.n.sutton@gmail.com