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

### 984. Does `<cinttypes>` have macro guards?

Section: 31.13 [c.files] Status: C++11 Submitter: Howard Hinnant Opened: 2009-02-12 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [c.files].

View all issues with C++11 status.

Discussion:

The C standard says about `<inttypes.h>`:

> C++ implementations should define these macros only when `__STDC_FORMAT_MACROS`is defined before `<inttypes.h>` is included.

The C standard has a similar note about `<stdint.h>`. For `<cstdint>` we adopted a "thanks but no thanks" policy and documented that fact in 17.4.2 [cstdint.syn]:

> ... [Note: The macros defined by `<stdint>` are provided unconditionally. In particular, the symbols `__STDC_LIMIT_MACROS` and `__STDC_CONSTANT_MACROS` (mentioned in C99 footnotes 219, 220, and 222) play no role in C++. — end note]

I recommend we put a similar note in 31.13 [c.files] regarding `<cinttypes>`.

[ Batavia (2009-05): ]

> We agree with the proposed resolution. Move to Tentatively Ready.

Proposed resolution:

Add to 31.13 [c.files]:

> Table 112 describes header `<cinttypes>`. [Note: The macros defined by `<cintypes>` are provided unconditionally. In particular, the symbol `__STDC_FORMAT_MACROS` (mentioned in C99 footnote 182) plays no role in C++. — end note]