This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-02-07


1152. Rules for determining existence of implicit conversion sequence

Section: 12.2.3  [over.match.viable]     Status: C++11     Submitter: US     Date: 2010-08-03

[Voted into the WP at the November, 2010 meeting.]

N3092 comment US 67

To determine whether there is an implicit conversion sequence that converts the argument to the corresponding parameter, 12.2.3 [over.match.viable] paragraph 3 uses 12.2.4.2 [over.best.ics] instead of just saying “there is an ICS if-and-only-if a copy initialization would be well-formed.” Apparently this is intended, but to a casual reader or an implementor reading these rules for the first time for a new implementation, it's not clear why that's desirable. A note should be added to explain the rationale.

Proposed resolution (August, 2010):

Change 12.2.4.2.5 [over.ics.ref] paragraph 3 as follows:

Except for an implicit object parameter, for which see 12.2.2 [over.match.funcs], a standard conversion sequence cannot be formed if it requires binding an lvalue reference to non-const other than a reference to a non-volatile const type to an rvalue or binding an rvalue reference to an lvalue. [Note:...