[PATCH] libstdc++: Implement integer-class types as defined in [iterator.concept.winc]
Jonathan Wakely
jwakely@redhat.com
Wed Aug 19 09:47:04 GMT 2020
On 11/08/20 11:38 -0400, Patrick Palka via Libstdc++ wrote:
>Subject: [PATCH] libstdc++: integer-class types as per [iterator.concept.winc]
>
>This implements signed and unsigned integer-class types, whose width is
>one bit larger than the widest supported signed and unsigned integral
>type respectively. In our case this is either __int128 and unsigned
>__int128, or long long and unsigned long long.
>
>Internally, the two integer-class types are represented as a largest
>supported unsigned integral type plus one extra bit. The signed
>integer-class type is represented in two's complement form with the
>extra bit acting as the sign bit.
>
>libstdc++-v3/ChangeLog:
>
> * include/Makefile.am (bits_headers): Add new header
> <bits/max_size_type.h>.
> * include/Makefile.in: Regenerate.
> * include/bits/iterator_concepts.h
> (ranges::__detail::__max_diff_type): Remove definition, replace
> with forward declaration of class __max_diff_type.
> (__detail::__max_size_type): Remove definition, replace with
> forward declaration of class __max_size_type.
> (__detail::__is_unsigned_int128, __is_signed_int128,
> __is_int128): New concepts.
According to GNU changelog conventions you should close the parens at
the end of the first line and reopen them on the next i.e.
(__detail::__is_unsigned_int128, __is_signed_int128)
(__is_int128): New concepts.
See the paragraph beginning "Break long lists of function names" at
https://www.gnu.org/prep/standards/html_node/Style-of-Change-Logs.html#Style-of-Change-Logs
Apart from that, this looks great. Please push, thanks!
More information about the Gcc-patches
mailing list