This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 115d. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.
2024-10-26
[Voted into the WP at the November, 2010 meeting.]
N3092 comment US 7013.10.3.5 [temp.deduct.partial] paragraph 3 specifies that the deduction used in partial ordering in a non-call context is based on the complete function type of the function templates. The wording in 13.7.7.3 [temp.func.order] paragraph 2 (and echoed in paragraph 4) reflects an earlier specification, however, saying that the deduction uses only “the function parameter types, or in the case of a conversion function the return type.” This is a contradiction. The wording in 13.7.7.3 [temp.func.order] should be changed.
Proposed resolution (September, 2010):
Change 13.7.7.3 [temp.func.order] paragraph 2 as follows:
Partial ordering selects which of two function templates is more specialized than the other by transforming each template in turn (see next paragraph) and performing template argument deduction using the functionparameter types, or in the case of a conversion function the returntype. The deduction process determines whether one of the templates is more specialized than the other. If so, the more specialized template is the one chosen by the partial ordering process.
Change 13.7.7.3 [temp.func.order] paragraph 4 as follows:
Using the transformed function template's functionparameter list, or in the case of a conversion function its transformed returntype, perform type deduction against the functionparameter list (or return type)type of the other function template. The mechanism for performing these deductions is given in 13.10.3.5 [temp.deduct.partial].