[PATCH 2/2] libstdc++: use new built-in trait __is_unsigned
Jonathan Wakely
jwakely@redhat.com
Tue Mar 21 16:44:26 GMT 2023
On Tue, 21 Mar 2023 at 16:41, Ken Matsui via Libstdc++ <
libstdc++@gcc.gnu.org> wrote:
> This patch lets libstdc++ use new built-in trait __is_unsigned.
>
> libstdc++-v3/ChangeLog:
>
> * include/std/type_traits (is_unsigned): Use __is_unsigned
> built-in trait.
>
Please wrap the ChangeLog entry to less than 80 columns (including 8 for
the leading tab).
> ---
> libstdc++-v3/include/std/type_traits | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/libstdc++-v3/include/std/type_traits
> b/libstdc++-v3/include/std/type_traits
> index 2bd607a8b8f..8d5a05cd0a6 100644
> --- a/libstdc++-v3/include/std/type_traits
> +++ b/libstdc++-v3/include/std/type_traits
> @@ -884,10 +884,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> { };
>
> /// is_unsigned
> +#if __has_builtin(__is_unsigned)
> + template<typename _Tp>
> + struct is_unsigned
> + : public __bool_constant<__is_unsigned(_Tp)>
> + { };
> +#else
> template<typename _Tp>
> struct is_unsigned
> : public __and_<is_arithmetic<_Tp>, __not_<is_signed<_Tp>>>::type
> { };
> +#endif
>
Thanks, I expect this trait to make a much bigger difference than
add_const, so I'm very happy to see this one!
>
> /// @cond undocumented
> template<typename _Tp, typename _Up = _Tp&&>
> --
> 2.40.0
>
>
More information about the Libstdc++
mailing list