This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Open status.

2818. "::std::" everywhere rule needs tweaking

Section: [contents] Status: Open Submitter: Tim Song Opened: 2016-11-11 Last modified: 2019-07-27

Priority: 2

View all other issues in [contents].

View all issues with Open status.


[contents]/3 says

Whenever a name x defined in the standard library is mentioned, the name x is assumed to be fully qualified as ::std::x, unless explicitly described otherwise. For example, if the Effects section for library function F is described as calling library function G, the function ::std::G is meant.

With the introduction of nested namespaces inside std, this rule needs tweaking. For instance, time_point_cast's Returns clause says "time_point<Clock, ToDuration>(duration_cast<ToDuration>(t.time_since_epoch()))"; that reference to duration_cast obviously means ::std::chrono::duration_cast, not ::std::duration_cast, which doesn't exist.

[Issues Telecon 16-Dec-2016]

Priority 2; Jonathan to provide wording

[2019 Cologne Wednesday night]

Geoffrey suggested editing [contents]/2 to mention the case when we're defining things in a sub-namespace.

Jonathan to word this.

Proposed resolution: