The changes since v2 are in the test code:

  - There's a short test for string literals. I had trouble doing
    much with them.

  - Convert commented out invalid code into neg test using static_asserts for:
    invocable, indexable.

  - Check type of expression in tests for: operator{->*,||,&&,<=>,==,!=}

  - Check mixed wrapped and unwrapped for: operator{||,&&,==,!=,<=>}.

  - For || and && check that while the result is not std::cw<bool(...)>,
    it's still a core constant.

  - Add tests checking compatibility with other constant wrappers.

  - Add `check_same(lhs, rhs)` which checks that the two compare equal and have
    the same type; and clean up the code by using it.

  - The example from the standard was converted to a compile
    only test (with check for failure).

  - Add tests for CTAD of span/mdspan from boolean constants.

  - Removed adl.cc because instantiate.cc is a better test of the ADL behaviour.

Luc Grosheintz (2):
  libstdc++: Implement constant_wrapper, cw from P2781R9.
  libstdc++: Adjust span/mdspan CTAD for P2781R9.

 libstdc++-v3/include/bits/version.def         |   8 +
 libstdc++-v3/include/bits/version.h           |  10 +
 libstdc++-v3/include/std/span                 |   3 +-
 libstdc++-v3/include/std/type_traits          | 371 +++++++++++
 libstdc++-v3/src/c++23/std.cc.in              |   4 +
 .../testsuite/20_util/constant_wrapper/adl.cc |  86 +++
 .../testsuite/20_util/constant_wrapper/ex.cc  |  39 ++
 .../20_util/constant_wrapper/generic.cc       | 386 ++++++++++++
 .../20_util/constant_wrapper/instantiate.cc   | 575 ++++++++++++++++++
 .../20_util/constant_wrapper/op_comma_neg.cc  |  14 +
 .../constant_wrapper/other_wrappers.cc        |  75 +++
 .../20_util/constant_wrapper/version.cc       |  11 +
 .../23_containers/mdspan/extents/misc.cc      |  22 +-
 .../testsuite/23_containers/mdspan/mdspan.cc  |  23 +-
 .../testsuite/23_containers/span/deduction.cc |  20 +-
 15 files changed, 1632 insertions(+), 15 deletions(-)
 create mode 100644 libstdc++-v3/testsuite/20_util/constant_wrapper/adl.cc
 create mode 100644 libstdc++-v3/testsuite/20_util/constant_wrapper/ex.cc
 create mode 100644 libstdc++-v3/testsuite/20_util/constant_wrapper/generic.cc
 create mode 100644 
libstdc++-v3/testsuite/20_util/constant_wrapper/instantiate.cc
 create mode 100644 
libstdc++-v3/testsuite/20_util/constant_wrapper/op_comma_neg.cc
 create mode 100644 
libstdc++-v3/testsuite/20_util/constant_wrapper/other_wrappers.cc
 create mode 100644 libstdc++-v3/testsuite/20_util/constant_wrapper/version.cc

-- 
2.51.0

Reply via email to