diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2020-04-09 22:24:57 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2020-04-09 22:24:57 +0100 |
commit | 3fd1c229ad10fda68318882329568f400a38fb6d (patch) | |
tree | 0ea879584b331c2c5af5612db18b60ef67379f8b /gcc/fortran/resolve.c | |
parent | 5b074864f8c593fd4bccee788a023a37b446b2ed (diff) | |
download | gcc-3fd1c229ad10fda68318882329568f400a38fb6d.zip gcc-3fd1c229ad10fda68318882329568f400a38fb6d.tar.gz gcc-3fd1c229ad10fda68318882329568f400a38fb6d.tar.bz2 |
libstdc++: Implement LWG 3324 for [cmp.alg] function objects (LWG 3324)
LWG 3324 changed the [cmp.alg] types to use std::compare_three_way
instead of the <=> operator, but we were still using the old
specification. In order to make the existing tests pass the N::X type
needs to be equality comparable, so that three_way_comparable is
satisfied and compare_three_way can be used.
As part of this change I noticed that the compare_three_way call
operator was unconditionally noexcept, which is incorrect.
* libsupc++/compare (compare_three_way): Fix noexcept-specifier.
(strong_order, weak_order, partial_order): Replace uses of <=> with
compare_three_way function object (LWG 3324).
* testsuite/18_support/comparisons/algorithms/partial_order.cc: Add
equality operator so that X satisfies three_way_comparable.
* testsuite/18_support/comparisons/algorithms/strong_order.cc:
Likewise.
* testsuite/18_support/comparisons/algorithms/weak_order.cc: Likewise.
Diffstat (limited to 'gcc/fortran/resolve.c')
0 files changed, 0 insertions, 0 deletions