Title
Move construction and rvalue reference members
Status
cd3
Section
11.4.5.3 [class.copy.ctor]
Submitter
Richard Smith

Created on 2012-03-30.00:00:00 last changed 123 months ago

Messages

Date: 2014-03-03.00:00:00

Additional note, February, 2014:

This issue is resolved by the resolution of issue 1402, which removed the problematic sentence.

Date: 2022-02-18.07:47:23

According to 11.4.5.3 [class.copy.ctor] paragraph 11, the last bullet, a defaulted move constructor for a class is defined as deleted if

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 means that an example like

  struct S { S(); int &&r; } s{S()};

is ill-formed. This is probably not intended.

(Note that the February, 2012 proposed resolution for issue 1402 also makes this example ill-formed, because the move constructor is not declared and the copy constructor is defined as deleted because of the rvalue-reference member.)

History
Date User Action Args
2014-03-03 00:00:00adminsetmessages: + msg4972
2014-03-03 00:00:00adminsetstatus: drafting -> cd3
2012-11-03 00:00:00adminsetstatus: open -> drafting
2012-03-30 00:00:00admincreate