Quuxplusone added a comment. Please add test cases showing the intended behavior for
- when the copy constructor is explicitly defaulted but the copy assignment operator is {implicitly defaulted, implicitly deleted, user-provided} - when the copy assignment operator is explicitly defaulted but the copy constructor is {implicitly defaulted, implicitly deleted, user-provided} - when the {copy constructor, copy assignment operator} is user-provided but the other is implicitly deleted An example of an implicitly deleted copy assignment operator would be struct A { int& x; A(const A& rhs) : x(rhs.x) {} }; Also, how does the presence of a user-provided destructor interact with this diagnostic? If I provide a destructor but implicitly default my copy operations, isn't that just as bad, Rule-of-Three-wise? CHANGES SINCE LAST ACTION https://reviews.llvm.org/D68185/new/ https://reviews.llvm.org/D68185 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits