See http://hostilefork.com/nocycle for information about this project.
Note: This code was originally done as a thought-experiment in 2009. At the time I didn't know much about the state of C++11 (which was then known as "C++0x"). There weren't a lot of good internet resources for working with the spec that had been evolving, so I just did it in plain C++98. I was not very knowledgable about templates at the time, and using Boost.Graph for the first time was a bit of a challenge.
In the interest of making it a bit more presentable a decade later, I'm doing some idle cleanup.