The merge algorithm moves data from the source ranges into the destination, invalidating the source data. The C++03 standard isn't really clear about whether or not the input range is invalidated, but this is not consistent with what is expected.I do not believe this behavior is consistent with previous versions of Visual Studio. None of the other implementations I've tested exhibit this behavior, and it is not consistent with the documented behavior of the function (http://msdn.microsoft.com/en-us/library/9ew9xdb2.aspx) or that of the C++0x draft (which explicitly says the source ranges are copied).
Visual Studio/Team Foundation Server/.NET Framework Tooling version
Steps to reproduce
Operating System Language