People keep asking me if I’ll be at the WG21 meeting in San Diego this November. No, I won’t; I have a prior commitment elsewhere.
(The quietness of my blog is unrelated; I’m currently on a cross-country vacation with my wonderful wife.)
I have submitted four papers for San Diego. I present them here in order of significance:
P1153 “Copying volatile subobjects is non-trivial.” This one is a conservative attempt to solve the problem identified in my blog post “When is a trivially copyable object not trivially copyable?” (2018-07-13). It has been coauthored and will be shepherded at San Diego by JF Bastien, along with his own P1152 “Deprecating
volatile” at the same time. I suspect that P1152 will perform better than P1153 for social reasons, and therefore P1153 is probably negligible. I’m okay with this.
P1154 “Type traits for structural comparison.” This paper proposes that there should be a standard way to detect the property of strong structural equality, so that we can for example SFINAE or
static_asserton that property. (Strong structural equality is the property brought into the C++2a Working Draft by Jeff Snyder and Louis Dionne’s P0732 “Class Types in Non-Type Template Parameters.”) Jeff Snyder is a coauthor and shepherd on this paper. I expect and hope that under Jeff’s wing P1154 will sail through LEWG and LWG, being as it is a friendly amendment to the already-accepted P0732.
P1155 “More implicit moves.” This was the subject of my CppCon talk “RVO is Harder Than it Looks: The Story of
-Wreturn-std-move.” It proposes that we should make
return x;into a move-from-
xin most cases, so that maybe in a few years I won’t just have to update that talk but maybe I’ll no longer have to give it at all! David Stone is a coauthor and shepherd on this paper, along with his own related but orthogonal P0527R1 “Implicitly move from rvalue references in return statements.” I am uncertain whether P0527 is a slam-dunk, although it has nice ramifications as discussed here. My tentative hope is that we can get both P1155 and P0527 for C++2a. P1155 includes proposed wording relative to the current working draft and also relative to the-working-draft-with-P0527-applied.
P1144 “Object relocation in terms of move plus destroy.” This, the most important of my papers by far, has seen a lot of anecdotal interest, but didn’t even have a shepherd until the other day, when Corentin Jabot stepped up in alarm after seeing that P1144 hadn’t been scheduled for discussion in any group! It looks like now it’s going to be seen by the newly formed “EWGI” (“Evolution Working Group Incubator”) at some point during San Diego week. It is essentially unbelievable at this point that P1144 trivial relocatability would make it into C++2a.
If you’d like to see P1144 in C++2a, and you’ll be at San Diego, please try to be in the room when it’s discussed! Many thanks for Corentin Jabot for becoming sufficiently alarmed to try to get it discussed — I hope it happens. :)
If you’d like to see P1144 in Clang, and you are a reviewer for Clang/LLVM, please leave your review comments on the Clang pull request (open since 2018-07-31). Many thanks to Nicolas Lesser for his intensive commenting so far.
For more information on P1144 trivial relocatability, see its tag category on this blog.