Title
Injected class template names and default arguments
Status
cd4
Section
13.8.2 [temp.local]
Submitter
Hubert Tong

Created on 2014-05-05.00:00:00 last changed 49 months ago

Messages

Date: 2015-05-15.00:00:00

[Moved to DR at the May, 2015 meeting.]

Date: 2014-11-15.00:00:00

Proposed resolution (November, 2014):

Change 13.2 [temp.param] paragraph 10 as follows:

The set of default template-arguments available for use with a template declaration or definition is obtained by merging the default arguments from the definition (if in scope) and all prior declarations in scope of the template in the same way default function arguments are (9.3.4.7 [dcl.fct.default]). [Example:...
Date: 2014-05-05.00:00:00

Use of the injected-class-name of a class template with a template-argument-list that relies on default arguments is not clearly specified in the current wording of the Standard. In particular, according to 13.2 [temp.param] paragraph 10,

The set of default template-arguments available for use with a template declaration or definition is obtained by merging the default arguments from the definition (if in scope) and all declarations in scope in the same way default function arguments are (9.3.4.7 [dcl.fct.default]).

However, the injected-class-name hides the template declarations, so it is not clear whether the default arguments are available at that point or not.

History
Date User Action Args
2017-02-06 00:00:00adminsetstatus: drwp -> cd4
2015-11-10 00:00:00adminsetstatus: dr -> drwp
2015-05-25 00:00:00adminsetmessages: + msg6058
2015-05-25 00:00:00adminsetstatus: tentatively ready -> dr
2014-11-24 00:00:00adminsetmessages: + msg5168
2014-11-24 00:00:00adminsetstatus: drafting -> tentatively ready
2014-07-07 00:00:00adminsetstatus: open -> drafting
2014-05-05 00:00:00admincreate