
On Thu, 1 Oct 2009, Cosimo Calabrese wrote:
I've just looked to the edge_descriptor definition. An edge_descriptor is equal to another edge_descriptor if and only if they have the same source and target (from edge_base definition) and the same pointer to a property (from the edge_desc_impl definition).
If the 'original graph' doesn't never involve the free vertexes, and the 'little graph' necessary involves the free vertexes, so an edge_descriptor of the original graph will not be never the same of an edge_descriptor of the little graph.
If I'm sure to distinguish the edges of both the graphs, I think that I can implement the union_graph shortly.
What do you think about it?
I think that should work. You might really want a tagged union type, though (boost::variant with some guarantee that the edge descriptor types of the two graphs are different is an example). You would need to do wrapping of each graph's descriptors in the union iterator then, though. That would remove the restrictions on edges that you gave above. I don't know what you need as far as properties; those might need to be combined as well. -- Jeremiah Willcock