Skip to content

[cstdint.syn.2] is not in line with intention #3521

@dawidpilarski

Description

@dawidpilarski

I find

The header defines all types and macros the same as the C standard library header <stdint.h>.

to not fully reflect the intention as the

defines... same as the C standard library header

would mean, that cstdint also needs to define non std:: version of aliases. This is also against:

[library.5]

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 [language.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 propose to reword the [cstdint.syn.2] or remove it (since library.5 already handles this case).

In case of rewording it could sound like:

The header defines all types and macros the same as the C standard library header <stdint.h>, except for the types, which are defined in the namespace std.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions