[libcxx-commits] [PATCH] D107036: [WIP] [libc++] [P1614] Various unimplemented parts of <compare>. [WIP]

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Sep 6 11:44:25 PDT 2021


Quuxplusone updated this revision to Diff 370947.
Quuxplusone added a comment.

Fix `std::strong_order` for floats, thanks to
https://stackoverflow.com/questions/59348310/how-to-implement-the-totalorder-predicate-for-floating-point-values
https://stackoverflow.com/questions/69068075/what-is-the-purpose-of-if-x-and-y-represent-the-same-floating-point-datum-i
https://quuxplusone.github.io/blog/2021/09/05/float-format/

Add `std::weak_order` and `std::partial_order`; they lack testing.

Drive-by fix some minor stuff.

Still unimplemented: `std::strong_order_fallback` and so on.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107036/new/

https://reviews.llvm.org/D107036

Files:
  libcxx/docs/FeatureTestMacroTable.rst
  libcxx/docs/Status/Cxx20Papers.csv
  libcxx/docs/UsingLibcxx.rst
  libcxx/include/CMakeLists.txt
  libcxx/include/__bit/bit_cast.h
  libcxx/include/__compare/compare_three_way.h
  libcxx/include/__compare/partial_order.h
  libcxx/include/__compare/strong_order.h
  libcxx/include/__compare/weak_order.h
  libcxx/include/__memory/pointer_traits.h
  libcxx/include/__ranges/data.h
  libcxx/include/__ranges/size.h
  libcxx/include/__utility/priority_tag.h
  libcxx/include/bit
  libcxx/include/compare
  libcxx/include/functional
  libcxx/include/module.modulemap
  libcxx/include/utility
  libcxx/include/version
  libcxx/test/libcxx/diagnostics/detail.headers/bit/bit_cast.module.verify.cpp
  libcxx/test/libcxx/diagnostics/detail.headers/compare/compare_three_way.module.verify.cpp
  libcxx/test/libcxx/diagnostics/detail.headers/compare/partial_order.module.verify.cpp
  libcxx/test/libcxx/diagnostics/detail.headers/compare/strong_order.module.verify.cpp
  libcxx/test/libcxx/diagnostics/detail.headers/compare/weak_order.module.verify.cpp
  libcxx/test/libcxx/diagnostics/detail.headers/utility/priority_tag.module.verify.cpp
  libcxx/test/libcxx/diagnostics/nodiscard_extensions.pass.cpp
  libcxx/test/libcxx/diagnostics/nodiscard_extensions.verify.cpp
  libcxx/test/libcxx/utilities/memory/pointer.conversion/to_address.pass.cpp
  libcxx/test/std/language.support/cmp/cmp.alg/strong_order.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
  libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
  libcxx/test/std/library/description/conventions/type.descriptions/customization.point.object/cpo.pass.cpp
  libcxx/test/std/numerics/bit/bit.cast/bit_cast.compile.pass.cpp
  libcxx/test/std/numerics/bit/bit.cast/bit_cast.pass.cpp
  libcxx/test/std/utilities/function.objects/comparisons/compare_three_way.pass.cpp
  libcxx/test/std/utilities/function.objects/comparisons/transparent.pass.cpp
  libcxx/test/std/utilities/memory/pointer.conversion/to_address.pass.cpp
  libcxx/utils/generate_feature_test_macro_components.py

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D107036.370947.patch
Type: text/x-patch
Size: 86662 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210906/14bfad38/attachment-0001.bin>


More information about the libcxx-commits mailing list