In this talk we illustrate how to use the Boost.Coroutine library to invert visitor-based control flows. We show this technique by combining Boost.Coroutine with Boost.Graph to step through and resume visitor-based algorithms. In doing so we highlight a different interface to the visitor-based approach that is more readable, more maintainable and highly performant. The audience need not already be familiar with Boost.Coroutine or Boost.Graph.
Supplementary material is available at: https://github.com/daniel-j-h/cppnow2016