https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123241
Bug ID: 123241
Summary: Missing typedefs int128_t and uint128_t
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: janschultke at googlemail dot com
Target Milestone: ---
https://godbolt.org/z/3Po7Yxb39
#include <cstdint>
#include <type_traits>
static_assert(std::is_integral_v<__int128>);
using i128 = std::int128_t;
The first assertion passes, but libstdc++ provides no typedef std::int128_t.
https://eel.is/c++draft/cstdint.syn#3 requires a typedef:
> All types that use the placeholder N are optional when N is not 8, 16, 32, or
> 64.
> The exact-width types intN_t and uintN_t for N = 8, 16, 32, and 64 are also
> optional;
> however, if an implementation defines integer types with the corresponding
> width and no padding bits,
> it declares the corresponding typedef-names.