* Another minor question: Why are not all events of a DFS-visitor optional (like finish_edge is)? I think this would make implementing a partial DFS-visitors easier (by not having to derive from dfs_visitor in order to provide events that one is not interested in).
Have you tried deriving from default_dfs_visitor?
Yes, but why only make finish_edge optional? I think it would make user-code (slightly) clearer if all events were optional. It's no big deal, of course, and that's why it's a minor question. Alex PS: For the background, I'm quite new to Boost and for me it is somewhat arbitrary that everything is mandatory but finish_edge. The reason, however, seems to be historical: I recently saw that, at least in Boost version <= 1.39, there was no finish_edge-event.