
On Mar 31, 2011, at 3:45 PM, Andrew Sutton wrote:
It's a balancing act. Operations that we know are being used in generic libraries typically are get free functions
IMO it should be: "operations that are used in generic algorithms get free functions."
Oops. That is exactly what I was trying to write, but apparently failed in several ways.
It sounds to me like you are going to end up keeping the BGLv1 functional graph concepts for compatibility, and also providing STL-style OO concepts (I prefer this aesthetic too). I'll strive to be compatible with both, if possible. I don't see how the old graph concepts are confining in any way, if anything they are sometimes too loose, e.g. when a node object is self-sufficient and you don't need the graph to lookup its edges. Not that I'm complaining; I understand why they are this way. On Mar 31, 2011, at 9:21 AM, Andrew Sutton <asutton.list@gmail.com> wrote:
The BGL concept hierarchy didn't address graph mutability very well. There aren't a lot of algorithms in the library that require a lot of add/remove functions, so it's not terribly surprising. I would also have liked to see more semantic concepts: directed and undirected graphs, weighted graphs, simple graphs, multigraphs. All of these concepts show up as requirements in various places in the library, but aren't expressed conceptually.
+1 on all this - I'll be watching with rapt attention, and following your lead. Thanks, Gordon