On Nov 29, 2004, at 9:17 AM, Sebastian Weber wrote:
(*vi).stuff = 4;
With this, one would save a lookup in the data-structures and the vertice-iterator concept would be far more logic to me, concernig internal property handling. [snip]
I don't know the BGL internals and how this behaviour is optimally programmed with the BGL. [snip] I hope my point is clear.
We considered this syntax (you might be able to find the discussion on the Boost developers list; GMane is running a bit slow for me at the moment). The basic problem is that we would need both const- and non-const vertex and edge descriptors (because the constness of the internal properties is now tied to the descriptors), which then means that we need const vertex iterators, const edge iterators, const out iterators, etc... it would very quickly become a nightmare for users and developers alike, because we would have twice as many iterator and descriptor types to deal with. On the performance side, it would make copying descriptors more expensive (e.g., with VertexListS=vecS, a vertex descriptor is just an integer; it would have to go to _at least_ a pointer). On the other side, I don't see that this would help performance much when accessing internal properties. Doug