BOOST WIKI | RecentChanges | Preferences | Page List | Links List
Boost Graph Library Version 2
Since its initial release in September of 2000, the Boost Graph Library has grown considerably and gained many users. In this time we have noticed certain usability issues, found new techniques and libraries that replace old ones, and extended it in ways not originally considered. It is time to revisit the design of the library to generate an even better Boost Graph Library.
Here are some ideas for changes we would like to make in version 2 of the library. Additional suggestions are welcome.
- Namespaces: move everything into the namespace
- Named parameters: use the named parameter library instead of the BGL named parameters mechanism.
- Documentation: Port to Quickbook.
- Usability: Try to address some of the usability issues that keep coming up:
- Property maps: Create a facility that makes it easier to create external property maps for a graph.
- Simple graph types: Create jack-of-all-trades class templates "directed_graph" and "undirected_graph", that make it very easy to add internal properties (e.g., using bundled properties), modify graphs, and use them with algorithms. Compilation speed is very important.
- Concepts & quality: Implement the "core" of each algorithm using concepts (enabled via a system of macros) and type-check with ConceptGCC?.
Some open questions:
- Is backward compatibility still important? Depends on the issue:
- V1 named parameters? (Doug: no)
- Support for compilers without partial specialization? (Doug: no)
- How best to organize the transition from v1 to v2? (Doug: The Python library did it somehow... ask Dave A.)
Disclaimer: This site not officially maintained by Boost Developers