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.

Reply via email to