This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 114a. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2024-04-18


1084. Conditions for a deleted move function

Section: 11.4.5.3  [class.copy.ctor]     Status: NAD     Submitter: Jason Merrill     Date: 2010-06-22

11.4.5.3 [class.copy.ctor] paragraph 12 says that a defaulted move constructor is defined as deleted if the class has a non-static data member or direct or virtual base class with a type that does not have a move constructor and is not trivially copyable. This seems more strict than is necessary; the subobject need not be trivially copyable, it should be enough for the selected constructor not to throw. In any case, the wording should be phrased in terms of the function selected by overload resolution rather than properties of the subobject type, and similarly for move assignment.

Rationale (November, 2010):

The CWG felt that the current specification was consistent and not overly problematic; users can add their own move constructor if needed.