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

Reply via email to