The initial proposal in this thread appears to be the "destructor-like syntax" mentioned by Denis Bider in P0023 "Relocator:
Efficiently moving objects"[1]. I think the arguments in that paper against the syntax are still applicable:
This would operate very similarly to the current proposal, but with the possibly unintuitive difference that
the new object is being passed as the parameter, so that e.g. ~c(x.c) initializes x.c with the value of c.
Furthermore, it would require re-inventing syntax to allow for move construction of subobjects.
I think it's unfortunate that more recent proposals (P1029, P1144) have moved away from making destructive move a customization point; it should be entirely possible to square the circle and have efficient relocation (en bloc memcpy for vector, e.g.) along with user controlled relocate where necessary. My proposal would be for a new type of constructor, taking a tag type so as not to require any new syntax, that could be defaulted to attest that a class is trivially relocatable on condition all its subobjects are: