992. Allow implementations to implement C library in the global namespace

Section: 20.5.1.1 [contents] Status: NAD Submitter: P.J. Plauger Opened: 2009-03-03 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [contents].

View all issues with NAD status.

Discussion:

Addresses UK-169 [CD1]

This phrasing contradicts later freedom to implement the C standard library portions in the global namespace as well as std. (17.6.2.3p4)

[ Batavia (2009-05): ]

The proposed wording seems to go too far. Move back to Open.

[ 2009-07 Frankfurt: ]

Howard to add NB reference to the description of this issue.

Move to NAD. This comment is informative and not normative by the use of the word "are" instead of the word "shall."

A note linking to Annex D would help clarify the intention, here.

Robert to Open a separate issue proposing that the standard C headers be undeprecated, for the purpose of clarifying the standard.

[ 2009-07-22 Bill modified the proposed wording with a clarifying footnote. ]

Proposed resolution:

Add a footnote to 20.5.1.1 [contents], p2:

-2- All library entities except macros, operator new and operator delete are defined within the namespace std or namespaces nested within namespace std*.

*The C standard library headers D.5 [depr.c.headers] also define names within the global namespace, while the C++ headers for C library facilities 20.5.1.2 [headers] may also define names within the global namespace.