The Visual Studio documentation on std::list::splice() [http://msdn.microsoft.com/en-us/library/72fb8wzd(v=vs.110).aspx] states the following:
“In all cases, only iterators or references that point at spliced elements become invalid"
This behaviour is not compliant with the C++11 language standard INCITS/ISO/IEC 14882-2011.
Section 18.104.22.168 of the standard states :
"Pointers and references to the moved elements of x now refer to those same elements but as members of *this. Iterators referring
to the moved elements will continue to refer to their elements, but they now behave as iterators into *this, not into x"