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

2024-04-18


582. Template conversion functions

Section: 13.7.3  [temp.mem]     Status: CD1     Submitter: PremAnand Rao     Date: 23 May 2006

[Voted into WP at April, 2007 meeting.]

The wholesale replacement of the phrase “template function” by the resolution of issue 105 seems to have overlooked the similar phrase “template conversion function.” This phrase appears a number of times in 12.2.4.2.3 [over.ics.user] paragraph 3, 13.7.3 [temp.mem] paragraphs 5-8, and 13.10.3 [temp.deduct] paragraph 1. It should be systematically replaced in similar fashion to the resolution of issue 105.

Proposed resolution (October, 2006):

  1. Change 12.2.4.2.3 [over.ics.user] paragraph 3 as follows:

  2. If the user-defined conversion is specified by a template conversion function specialization of a conversion function template, the second standard conversion sequence must have exact match rank.
  3. Change 13.7.3 [temp.mem] paragraph 5 as follows:

  4. A specialization of a template conversion function conversion function template is referenced in the same way as a non-template conversion function that converts to the same type.
  5. Change 13.7.3 [temp.mem] paragraph 6 as follows:

  6. A specialization of a template conversion function conversion function template is not found by name lookup. Instead, any template conversion functions conversion function templates visible in the context of the use are considered.
  7. Change 13.7.3 [temp.mem] paragraph 7 as follows:

  8. A using-declaration using-declaration in a derived class cannot refer to a specialization of a template conversion function conversion function template in a base class.
  9. Change 13.7.3 [temp.mem] paragraph 8 as follows:

  10. Overload resolution (12.2.4.3 [over.ics.rank]) and partial ordering (13.7.7.3 [temp.func.order]) are used to select the best conversion function among multiple template conversion functions specializations of conversion function templates and/or non-template conversion functions.
  11. Change 13.10.3.4 [temp.deduct.conv] paragraph 1 as follows:

  12. Template argument deduction is done by comparing the return type of the template conversion function conversion function template (call it P) with the type that is required as the result of the conversion (call it A) as described in 13.10.3.6 [temp.deduct.type].