$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] [BGL] iterator/descriptor invalidation
From: Julius Ziegler (ziegler_at_[hidden])
Date: 2008-12-10 10:21:12
Andrew Sutton <andrew.n.sutton <at> gmail.com> writes:
> I was going to update the documentation, but decided to test a little more 
> thoroughly as to what is and is not actually invalidated when you add a 
> vertex. 
> Here are the somewhat surprising results:<vecS, vecS, undirectedS> - nothing 
> invalidated<vecS, vecS, directedS> - edge iterators are invalidated, nothing 
> else<vecS, vecS, bidrectionalS> - nothing invliadatedThe test file is in trunk 
> at libs/graphs/test/adj_list_invalidaton.cpp. It's not comprehensive, but
> will segfault as indicated above.
> 
> Andrew Suttonandrew.n.sutton <at> gmail.com
For completeness: the outcome is exactly the same if you use 
OutEdgeList = listS. To me, the surprising thing is that vertex_iterators are
so stable when adding vertices. I believe that vertex_iterator is just a 
vertex_descriptor in disguise, that, when dereferenced, does "normal" indexing 
(via operator[]) into the vertex storage.
Regards,
Julius