Graph.traverse

Traverses the entire graph depth-first calling the given visitor functions.

TODO: Use a queue and randomize the build order instead. This should give better performance on average and help catch race conditions.

class Graph(A, B, EdgeDataAB = size_t, EdgeDataBA = size_t)
void
traverse
(
alias visitA
alias visitB
Context
)
(
Context ctx
,
TaskPool pool
)
if (
!is(A == B)
)

Meta