Conclusion
This article showed how, with just a few lines of code using the BGL, you can answer a couple interesting questions about a file-dependency graph: In what order should the files be compiled? Are there any cycles in the makefile? You adapted the generic depth_first_search function of the BGL to suit your specific need of detecting cycles, and you applied topological_sort to determine the compilation order. You also learned a little about creating and manipulating BGL graphs. In the next article, I consider the problem of Internet packet routing and how the BGL can be applied in the domain.