------- Comment #5 from greened at obbligato dot org  2008-04-18 04:16 -------
Ok, the closest thing I could find is the 1998 draft standard:

http://www.kuzbass.ru:8086/docs/isocpp/lib-containers.html#lib.sequences

It says that splice "invalidates only the iterators and references to the
spliced elements."  There is no statement about iterators for merge.

So it seems like the testcase is invalid not due to the merge but due to the
splices.  GLIBCXX_DEBUG mode doesn't catch the problem with the splices since
the iterator is still considered valid after the splice.  For example, the
second splce doesn't assert on an invalid iterator being passed to it.

Perhaps this was changed in the final standard.  It seems odd to me that splice
and merge would invalidate iterators as iterator stability is a prime reason
for using std::list and these operations don't destroy any sequence values.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35969

Reply via email to