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

2024-04-18


1905. Dependent types and injected-class-names

Section: 13.8.3.2  [temp.dep.type]     Status: NAD     Submitter: Johannes Schaub     Date: 2014-03-29

According to 13.8.2 [temp.local] paragraph 1, when the injected-class-name of a class template is not followed by a template-argument-list or otherwise used as a template-name,

it is equivalent to the template-name followed by the template-parameters of the class template enclosed in <>.

This use of the template-parameters of the class template should make the injected-class-name a dependent type; however, the definition of dependent types in 13.8.3.2 [temp.dep.type] paragraph 8 applies to the injected-class-name only when it appears in a simple-template-id. An additional case is needed for the bare injected-class-name.

Rationale (June, 2014):

The fact that the use of the bare injected-class-name is described as “equivalent” to the simple-template-id is sufficiently clear regarding its status that no additional entry is needed in the list of dependent types.