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

2024-12-19


1593. “Parameter type” of special member functions

Section: 11.4.5.3  [class.copy.ctor]     Status: C++14     Submitter: Richard Smith     Date: 2012-12-03

[Moved to DR at the September, 2013 meeting.]

Paragraphs 12 and 25 of 11.4.5.3 [class.copy.ctor] both say that the function

is trivial if it is not user-provided, its declared parameter type is the same as if it had been implicitly declared, and...

However, a non-user-provided function might have more than one parameter if default arguments are used. The phrasing would be better as something like “its parameter-type-list is equivalent to the parameter-type-list of an implicit declaration.” (For consistency, the same phrasing should be used in 11.4.5 [class.ctor] paragraph 5. )

Proposed resolution (June, 2013):

  1. Change 11.4.5.3 [class.copy.ctor] paragraph 12 as follows:

  2. A copy/move constructor for class X is trivial if it is not user-provided, its declared parameter type is the same as if it had been implicitly declared parameter-type-list is equivalent to the parameter-type-list of an implicit declaration, and if...
  3. Change 11.4.5.3 [class.copy.ctor] paragraph 25 as follows:

  4. A copy/move assignment operator for class X is trivial if it is not user-provided, its declared parameter type is the same as if it had been implicitly declared parameter-type-list is equivalent to the parameter-type-list of an implicit declaration, and if...