The implicit definition provided for the move assignment operator doesn't
take advantage of the memcpy'izer like the copy assignment operator does.

It turns out that the AssignmentMemcpyizer will work perfectly with no
changes. The decision for whether a field is memcpy'able is the same for
copy and move assignment, and in the case where something isn't memcpy'able
it falls back to generic EmitStmt on the synthesized AST, which will be
calling the member's move-assignment or copy-assignment operator as
appropriate.

(What about move constructors? Those are CXXConstructorDecl's and end up in
EmitConstructorBody as appropriate.)

Patch attached, please review!

Nick

Attachment: move-assignment-1.patch
Description: Binary data

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to