Title
Argument conversions to nondeduced parameter types revisited
Status
open
Section
13.10.3.2 [temp.deduct.call]
Submitter
Richard Smith

Created on 2014-06-11.00:00:00 last changed 34 months ago

Messages

Date: 2015-11-10.00:00:00

Additional note, October, 2015:

See also issue 1391.

Date: 2014-06-11.00:00:00

The intent of the resolution of issue 1184 appears not to have been completely realized. In particular, the phrase, “contains no template-parameters that participate in template argument deduction” in both the note in 13.10.3.2 [temp.deduct.call] paragraph 4 and the normative wording in 13.10.2 [temp.arg.explicit] paragraph 6 is potentially misleading and probably should say something like, “contains no template-parameters outside non-deduced contexts.” Also, the normative wording should be moved to 13.10.3.2 [temp.deduct.call] paragraph 4, since it applies when there are no explicitly-specified template arguments. For example,

  template<typename T>
  void f(T, typename identity<T>::type*);

Presumably the second parameter should allow pointer conversions, even though it does contain a template-parameter that participates in deduction (via the first function parameter).

History
Date User Action Args
2022-02-18 07:47:23adminsetstatus: drafting -> open
2015-11-10 00:00:00adminsetmessages: + msg5671
2014-06-11 00:00:00admincreate