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


987. Which declarations introduce namespace members?

Section: 9.8  [basic.namespace]     Status: CD4     Submitter: Michael Wong     Date: 19 October, 2009

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

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_.9.8.2.3 [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.

Proposed resolution (November, 2014):

This issue is resolved by the resolution of issue 1838.