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

### 3370. §[cstdint.syn]p2 and §[headers]p5 are not sufficiently clear

Section: 17.4.2 [cstdint.syn], 16.4.2.3 [headers] Status: New Submitter: Dawid Pilarski Opened: 2020-01-14 Last modified: 2020-01-25

Priority: 3

View all other issues in [cstdint.syn].

View all issues with New status.

Discussion:

This issue has been submitted, because the editorial change requests c++-draft-issue 3521 and c++-draft-pull request 3528 has been rejected as not being editorial changes:

Currently given wording of 17.4.2 [cstdint.syn]p2:

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

might be understood as intended: typedefs inside `stdint.h` and inside `cstdint` in namespace `std::` refer to the same types, but another interpretation could be, that it's understood as:

Definitions in both files are done the same way (`cstdint` provides typedefs not in namespace `std`, because it would be a different definition than one in `stdint.h`).

Also 16.4.2.3 [headers]p5 is non sufficiently clear:

> […] the contents of each header `cname` is the same as that of the corresponding header `name.h` […]

As it doesn't say what does "same content" mean. For example is an implementation allowed to do following:

>     // __impl.h
>     typedef int __my_int;
>     namespace std { typedef long __my_int; }

>     // cname header
>     #include "__impl.h"

>     namespace std {
>       typedef __my_int uint32_t;
>     }

>     // name.h header
>     #include "__impl.h"
>     typedef __my_int uint32_t;

?

In this case typedef from namespace `std` and from global namespace refer to different types?

Proposed change:

Apply wording, that will unambiguously make typedefs from namespace `std` refer to the same types as typedefs from global namespace for all headers `name.h` and their corresponding headers `cname`.

[2020-01-25 Issue Prioritization]

Priority to 3 after reflector discussion.

Proposed resolution: