The C standard says about <inttypes.h>:
C++ implementations should define these macros only when __STDC_FORMAT_MACROSis 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 [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 [c.files] regarding <cinttypes>.