https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96526

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:9805965e3551b66b5bd751d6076791d00cdeb137

commit r12-7468-g9805965e3551b66b5bd751d6076791d00cdeb137
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu Mar 3 12:34:27 2022 +0000

    libstdc++: Implement std::strong_order for floating-point types [PR96526]

    This removes a FIXME in <compare>, defining the total order for
    floating-point types. I originally opened PR96526 to request a new
    compiler built-in to implement this, but now that we have std::bit_cast
    it can be done entirely in the library.

    The implementation is based on the glibc definitions of totalorder,
    totalorderf, totalorderl etc.

    I think this works for all the types that satisfy std::floating_point
    today, and should also work for the types expected to be added by P1467
    except for std::bfloat16_t. It also supports some additional types that
    don't currently satisfy std::floating_point, such as __float80, but we
    probably do want that to satisfy the concept for non-strict modes.

    libstdc++-v3/ChangeLog:

            PR libstdc++/96526
            * libsupc++/compare (strong_order): Add missing support for
            floating-point types.
            *
testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
            New test.
  • [Bug libstdc++/96526] implement... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to