std
for implementationsSection: 16.4.2.2 [contents] Status: C++11 Submitter: Howard Hinnant Opened: 2009-03-15 Last modified: 2016-01-28
Priority: Not Prioritized
View all other issues in [contents].
View all issues with C++11 status.
Discussion:
Addresses UK 168 [CD1]
We should make it clear (either by note or normatively) that namespace
std
may contain inline namespaces, and that entities specified to be
defined in std may in fact be defined in one of these inline namespaces.
(If we're going to use them for versioning, eg when TR2 comes along,
we're going to need that.)
Replace "namespace std or namespaces nested within namespace std" with "namespace std or namespaces nested within namespace std or inline namespaces nested directly or indirectly within namespace std"
[ Summit: ]
adopt UK words (some have reservations whether it is correct)
[ 2009-05-09 Alisdair improves the wording. ]
[ Batavia (2009-05): ]
Bill believes there is strictly speaking no need to say that because no portable test can detect the difference. However he agrees that it doesn't hurt to say this.
Move to Tentatively Ready.
Proposed resolution:
Change 16.4.2.2 [contents] p2:
All library entities except macros,
operator new
andoperator delete
are defined within the namespacestd
or namespaces nested within namespacestd
. It is unspecified whether names declared in a specific namespace are declared directly in that namespace, or in an inline namespace inside that namespace. [Footnote: This gives implementers freedom to support multiple configurations of the library.]