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

2024-12-19


2008. Default template-arguments underspecified

Section: 13.4  [temp.arg]     Status: CD4     Submitter: Andrew Sutton     Date: 2014-09-23

[Adopted at the February, 2016 meeting.]

Proposed resolution, October, 2015:

Add the following as a new paragraph after 13.4 [temp.arg] paragraph 7:

When the template in a template-id is an overloaded function template...

When a simple-template-id does not name a function, a default template-argument is implicitly instantiated (13.9.2 [temp.inst]) when the value of that default argument is needed. [Example:

  template<typename T, typename U = int> struct S { };
  S<bool>* p; // the type of p is S<bool, int>*

The default argument for U is instantiated to form the type S<bool, int>*. —end example]

Notes from the November, 2014 meeting:

The preceding was extracted from the wording of the Concepts Lite draft Technical Specification.