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


2637. Injected-class-name as a simple-template-id

Section: 11.1  [class.pre]     Status: DRWP     Submitter: Shafik Yaghmour     Date: 2022-10-26

[Accepted as a DR at the March, 2024 meeting.]

Issue 2237 sought to disallow simple-template-ids as constructor names, by referring to the injected-class-name. However, 11.1 [class.pre] paragraph 2 specifies:

The class-name is also bound in the scope of the class (template) itself; this is known as the injected-class-name.

The grammar non-terminal class-name includes the option of a simple-template-id (for declaring a partial specialization).

Proposed resolution (approved by CWG 2023-11-11):

Change in 11.1 [class.pre] paragraph 2 as follows:

The component name of the class-name is also bound in the scope of the class (template) itself; this is known as the injected-class-name. ...