Title
“Parameter type” of special member functions
Status
c++14
Section
11.4.5.3 [class.copy.ctor]
Submitter
Richard Smith

Created on 2012-12-03.00:00:00 last changed 114 months ago

Messages

Date: 2013-09-15.00:00:00

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

Date: 2013-06-15.00:00:00

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...
Date: 2022-02-18.07:47:23

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. )

History
Date User Action Args
2014-11-24 00:00:00adminsetstatus: drwp -> c++14
2014-03-03 00:00:00adminsetstatus: dr -> drwp
2013-10-14 00:00:00adminsetmessages: + msg4695
2013-10-14 00:00:00adminsetstatus: tentatively ready -> dr
2013-09-03 00:00:00adminsetmessages: + msg4465
2013-09-03 00:00:00adminsetstatus: drafting -> tentatively ready
2013-05-03 00:00:00adminsetstatus: open -> drafting
2012-12-03 00:00:00admincreate