Now I am facing another problem: Is it possible to read of via graph_traits somehow at compile time if the underlying graph type is mutable or not? Depending on this I would like to change the compiled code. The concept stuff is not the right thing here as it would stop compilation, but I want to make a function call dispatch depending upon mutability. I only found the traversal stuff in the traits-classes so I guess a trick is needed here. Shouldn't graph_traits include some tag which converts to the implemented concepts of the graph? This is what I was looking for, but well, it is not there.

I'll assume you aren't talking about const/non-const since that can be done with an overload.

As a matter of fact, there is. I added a framework for compile-time mutability properties of graphs that (kind of) parallels the mutability concepts (in graph_concepts, not the documentation), Basically, it assigns tag classes to graphs based on their ability to add and remove vertices and edges with or without properties.

You can specialize the graph_mutability_traits for your derived type. There are also a number of metafunctions, graph_has_remove_vertex and is_mutable_graph.

The mutability traits aren't actually used outside the BGL tests. They could be, but there aren't really that many generic mutating algorithms.

Naturally, it's all undocumented :)
 
Thanks for the hint of the quickbook documents in the trunk - I went through the process of generating the docs and there is a slight typo in the qbk-files: It fails to compile the stuff since it assumes the examples to be in the directory examples, but they are in the example (singular) directory. A symlink solved it for me, but it ought to be corrected.

Still working on it. I think I merged all of the quickbook examples into the example directory and forgot to update the links.
 
Still the vertex_all stuff would be nice to know about. Any hint would be great.

I'll look into it.
 
Andrew Sutton
andrew.n.sutton@gmail.com