News for hackers. Stuff that matters.
Re:Modern C++ for C Programmers: part 5 by tlb on Wednesday July 25, 2018 @11:18AM (#17609918)
"The implicitly-declared or defaulted copy constructor for class T is defined as deleted if any of the following conditions are true ... T has a user-defined move constructor or move assignment operator" (since C++11)

https://en.cppreference.com/w/cpp/language/copy_constructor

But there's no harm in explicitly deleting it, and it helps document the intent.

Re:Modern C++ for C Programmers: part 5 by _pmf_ on Wednesday July 25, 2018 @12:36PM (#17610564)
What's the motivation behind this?
Re:Modern C++ for C Programmers: part 5 by tlb on Wednesday July 25, 2018 @12:45PM (#17610654)
The committee probably observed that in most cases where people wanted a move constructor, they needed either no copy constructor or a more complicated one (to handle duplicating a resource.) So creating a default copy constructor (a convenience in the common case of a simple structure) wasn't a win.

Perhaps if you were designing C++ from scratch without legacy and had a more Python-like mindset, you'd require an explicit "= default" rather than complicated rules about whether a default is provided for you or not.