Implements depth-first search over graphs.
A default implementation of the depth-first-search visitor concept. More specialised visitors can delegate the bits that they don't care about to an instance of NullVisitor without having to re-implement them.
Performs a depth-first traversal of the graph, which can be customised using a visitor object. Note that disconnected graphs will still be entirely traversed - this function will walk the spanning tree of each disconnected component (in random order).
Performs a depth-first traversal of the graph, which can be customised using a visitor object. The main difference between this function and depthFirstSearch is that depthFirstSearch will initialise the supplied colour map, but depthFirstVisit will use it as-is.
Compile time test to check if a given type can be considered a DFS visitor.