STL
STL copied to clipboard
`<sstream>`: Don't swap `basic_stringbuf`s in move assignment and allocator-extended construction
trafficstars
Fixes #4232.
Notes:
- Exception specification strengthening for move assignment is made conditional (similar to standard specifications for containers).
- The
_Copy_into_self_and_tidyfunction actually copies the buffer, which is needed when both allocators are not equal. - The old
_Assign_rvis sometimes replaced with_Assign_rv_no_alias, which should avoid redundant address comparison.
There are runtime test failures.
The CLA bot is stuck, so I'm going to close and reopen this (the only way that we can get it to rerun).
Thanks! :heart_eyes_cat: I pushed a couple of bugfixes and I think this is ready to go.
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed.
Thanks for fixing this libcxx failure! :tada: :heart_eyes_cat: :rocket: