Complete type required for implicit conversion to T&
6.3 [basic.def.odr]
Richard Smith

Created on 2011-08-16.00:00:00 last changed 90 months ago


Date: 2012-02-15.00:00:00

[Voted into the WP at the February, 2012 meeting; moved to DR at the October, 2012 meeting.]

Date: 2011-08-15.00:00:00

Proposed resolution (August, 2011):

Change the indicated bullet of 6.3 [basic.def.odr] paragraph 4 as follows:

  • an expression that is not a null pointer constant, and has type other than cv void*, is converted to the type pointer to T or reference to T using an implicit a standard conversion (Clause 7.3 [conv]), a dynamic_cast ( [expr.dynamic.cast]) or a static_cast ( [expr.static.cast]), or

Date: 2011-08-16.00:00:00

The requirement in 6.3 [basic.def.odr] paragraph 4 that a type T must be complete if an expression is implicitly converted to a pointer to T or reference to T inadvertently applies to user-defined conversions, although it was intended only to refer to built-in conversions.

Date User Action Args
2014-03-03 00:00:00adminsetstatus: drwp -> cd3
2012-11-03 00:00:00adminsetstatus: dr -> drwp
2012-02-27 00:00:00adminsetmessages: + msg3786
2012-02-27 00:00:00adminsetstatus: ready -> dr
2011-09-06 00:00:00adminsetmessages: + msg3422
2011-08-16 00:00:00admincreate