-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
<thread>
: implement LWG-3788
#3130
Conversation
We implemented self-assign by stopping and joining; this was a bad idea, and there is now an LWG issue to say that we shouldn't do that.
@strega-nil-ms If possible, I strongly recommend writing a Proposed Resolution for LWG-3788 if you want it to be accepted this decade - issues without Proposed Resolutions tend to linger for years, while those with simple and uncontroversial Proposed Resolutions can be quickly accepted within a meeting or two. |
This seems to be somewhat more daring than we usually are for not-yet-accepted LWG issues (that change the Standardese 180 degrees, instead of merely clarifying something ambiguous). In the past, we've been burned by speculatively implementing "obviously correct" fixes that later turned out to be controversial (e.g. That said, I think it's reasonable to be slightly daring here, as the existing self-move-assign behavior is so wacky, being a no-op is much more intuitive, and (importantly) this is a hopefully obscure case in relatively new machinery, so the possible impact is small. ✅ No modules impact. |
Jonathan Wakely has put forward a resolution to this issue that the LWG mailing list seems happy about, which is in line with this implementation. |
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
I've pushed a merge with |
Thanks for fixing this wacky behavior in both the Standard and our implementation! 😹 😸 🎉 |
We implemented self-assign by stopping and joining; this was a bad idea, and there is now an LWG issue to say that we shouldn't do that.
See LWG-3788.