Visual C++ has always used contiguous storage for std::string
.
One of the design decisions for implementing the contiguity requirement was that all current compilers were doing that anyway. Microsoft is quite well represented on the ISO C++ committee; there's no chance that they overlooked it. Visual C++ did go through a phase of implementing a copy-on-write "optimization" but never was one of the ones using non-contiguous "ropes".