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

2024-11-11


1939. Argument conversions to nondeduced parameter types revisited

Section: 13.10.3.2  [temp.deduct.call]     Status: open     Submitter: Richard Smith     Date: 2014-06-11

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).

Additional note, October, 2015:

See also issue 1391.