https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89855
--- Comment #6 from James Y Knight <foom at fuhm dot net> ---
Someone has pointed out to me that the standard actually says "name", which I
had internalized as meaning "declaration", but it doesn't. This arguably does
make the GCC implementation non-compliant with the spec.


>From http://eel.is/c++draft/headers#5

> Except as noted in [library] through [thread] and [depr], the contents of 
> each header cname is the same as that of the corresponding header name.h as 
> specified in the C standard library. In the C++ standard library, however, 
> the declarations (except for names which are defined as macros in C) are 
> within namespace scope of the namespace std. It is unspecified whether these 
> names (including any overloads added in [support] through [thread] and 
> [depr]) are first declared within the global namespace scope and are then 
> injected into namespace std by explicit using-declarations.

I think that text implies that all of the overloads of a particular name must
consistently either be defined in the global namespace (and then imported into
std with a using-declaration) or defined in the std namespace.

Reply via email to