Created on 2012-01-16.00:00:00 last changed 90 months ago
[Moved to DR at the October, 2012 meeting.]
Proposed resolution (February, 2012):
Change 184.108.40.206 [expr.static.cast] paragraphs 3-4 as follows:
A glvalue of type “cv1 T1” can be cast to type “rvalue reference to cv2 T2” if “cv2 T2” is reference-compatible with “cv1 T1” (9.4.4 [dcl.init.ref]).
Theresult refers to the object or the specified base class subobject thereof. If T2 is an inaccessible (Clause 11.8 [class.access]) or ambiguous (6.5.2 [class.member.lookup]) base class of T1, a program that necessitates such a cast is ill-formed.
Otherwise, anexpression e can be explicitly converted...
According to 220.127.116.11 [expr.static.cast] paragraph 3,
A glvalue of type “cv1 T1” can be cast to type “rvalue reference to cv2 T2,” if “cv2 T2” is reference-compatible with “cv1 T1” (9.4.4 [dcl.init.ref]). The result refers to the object or the specified base class subobject thereof.
This specification fails to allow for a bit-field lvalue operand, since the reference cannot refer to a bit-field. Presumably a temporary should be formed and the reference be bound to it.
|2014-03-03 00:00:00||admin||set||status: drwp -> cd3|
|2013-05-03 00:00:00||admin||set||status: dr -> drwp|
|2012-11-03 00:00:00||admin||set||messages: + msg4130|
|2012-11-03 00:00:00||admin||set||status: ready -> dr|
|2012-02-27 00:00:00||admin||set||messages: + msg3700|