Which declarations introduce namespace members?
9.8 [basic.namespace]
Michael Wong

Created on 2009-10-19.00:00:00 last changed 49 months ago


Date: 2014-11-15.00:00:00

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

Date: 2014-11-15.00:00:00

Proposed resolution (November, 2014):

This issue is resolved by the resolution of issue 1838.

Date: 2021-02-24.00:00:00

According to 9.8 [basic.namespace] paragraph 1,

The name of a namespace can be used to access entities declared in that namespace; that is, the members of the namespace.

implying that all declarations in a namespace, including definitions of members of nested namespaces, explicit instantiations, and explicit specializations, introduce members of the containing namespace. _N4868_. [namespace.memdef] paragraph 3 clarifies the intent somewhat:

Every name first declared in a namespace is a member of that namespace.

However, current changes to clarify the behavior of deleted functions (which must be deleted on their “first declaration”) state that an explicit specialization of a function template is its first declaration.

Date User Action Args
2017-02-06 00:00:00adminsetstatus: drwp -> cd4
2015-05-25 00:00:00adminsetstatus: dr -> drwp
2015-04-13 00:00:00adminsetmessages: + msg5367
2014-11-24 00:00:00adminsetmessages: + msg5262
2014-11-24 00:00:00adminsetstatus: open -> dr
2009-10-19 00:00:00admincreate