Move construction and rvalue reference members
_N4750_.15.8 [class.copy]
Richard Smith

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


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: 2020-12-15.00:00:00

According to _N4750_.15.8 [class.copy] 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.)

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