Defining classes and enumerations via using-declarations
_N4868_. [namespace.memdef]
Richard Smith

Created on 2015-07-05.00:00:00 last changed 36 months ago


Date: 2016-11-15.00:00:00

[Moved to DR at the November, 2016 meeting.]

Date: 2015-10-15.00:00:00

Proposed resolution (October, 2015):

  1. Change _N4868_. [namespace.memdef] paragraph 1 as follows:

  2. A declaration in a namespace N (excluding declarations in nested scopes) whose declarator-id is an unqualified-id (9.3.4 [dcl.meaning]), whose class-head-name (Clause Clause 11 [class]) or enum-head-name (9.7.1 [dcl.enum]) is an identifier, or whose elaborated-type-specifier is of the form class-key attribute-specifier-seqopt identifier ( [dcl.type.elab]), or that is an opaque-enum-declaration, declares (or redeclares) its unqualified-id or identifier as a member of N, and may be a definition. [Note:...
  3. Change the grammar of 9.7.1 [dcl.enum] as follows:

    • enum-head:
        enum-key attribute-specifier-seqopt identifier enum-head-nameopt enum-baseopt
        enum-key attribute-specifier-seqopt nested-name-specifier identifier enum-baseopt
        nested-name-specifieropt identifier
Date: 2015-07-05.00:00:00

The resolution of issue 1838 was intended to resolve issue 1021 but does not actually do so, as it applies only to declarations with a declarator-id, which is not true of classes and enumerations.

Date User Action Args
2018-02-27 00:00:00adminsetmessages: + msg6161
2018-02-27 00:00:00adminsetstatus: dr -> c++17
2017-02-06 00:00:00adminsetstatus: review -> dr
2015-11-10 00:00:00adminsetmessages: + msg5622
2015-07-05 00:00:00admincreate