Created on2011-08-27.00:00:00 last changed143 months ago
[Moved to DR at the October, 2012 meeting.]
Proposed resolution (February, 2012):
Change 9.3 [dcl.decl] paragraph 4 as follows:
...
declarator-id:...opt id-expression
nested-name-specifieropt class-name
Aclass-name has special meaning in a declaration of theclass of that name and when qualified by that name using the scoperesolution operator:: (5.1 [lex.separate],11.4.5 [class.ctor], 11.4.7 [class.dtor]).
Change _N4567_.5.1.1 [expr.prim.general] paragraph 8 as follows:
...[Note: a class member can be referred to using aqualified-id at any point in its potential scope (6.4.7 [basic.scope.class]). —end note]Whereclass-name::class-name is used, and the twoclass-namesrefer to the same class, this notation names the constructor(11.4.5 [class.ctor]).Whereclass-name::~class-name is used...
Issue 147 changed the name lookup rulesso that a lookup that would have found the injected-class-name of aclass will refer to the constructor. However, there still appear tobe vestiges of the earlier specification that were not removed bythe resolution. For example, the grammar in 9.3 [dcl.decl] paragraph 4contains,
It would seem that there is no longer any need for the secondline, since a lookup for adeclarator-id will not produceaclass-name. Similarly, _N4567_.5.1.1 [expr.prim.general] paragraph 8still contains the sentence,
Whereclass-name::class-name is used,and the twoclass-names refer to the same class, thisnotation names the constructor (11.4.5 [class.ctor]).

| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-03-03 00:00:00 | admin | set | status: drwp -> cd3 |
| 2013-05-03 00:00:00 | admin | set | status: dr -> drwp |
| 2012-11-03 00:00:00 | admin | set | messages: +msg4143 |
| 2012-11-03 00:00:00 | admin | set | status: ready -> dr |
| 2012-02-27 00:00:00 | admin | set | messages: +msg3718 |
| 2012-02-27 00:00:00 | admin | set | status: open -> ready |
| 2011-08-27 00:00:00 | admin | create | |