https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121811
--- Comment #16 from Jonathan Wakely <redi at gcc dot gnu.org> --- That would allow this in C++: ckd_add(&i, 'a', true) But C++26 says that's ill-formed: Mandates: Each of the types type1, type2, and type3 is a cv-unqualified signed or unsigned integer type. Maybe that's OK, because if you include <stdckdint.h> in C++26 you should get the C++ library's header, which should enforce the rules properly. If the C++ lib doesn't provide it yet, then you get the GCC ginclude/stdckdint.h one and it isn't fully conforming. But the fact it defines the __STDC_VERSION_STDCKDINT_H__ macro to the correct value suggests it should be fully conforming. I think I'll file an NB comment for C++26 saying that C++ should add its own macro to that file (and stdbit.h) so that programs can tell whether they're getting a C++-aware header or not. The current spec doesn't make that possible.