I have posted v4 for PATCH 1/2 that adds data member tests. Both patches looks good to me. Thank you very much for your continued high quality contributions.
On Thu, Sep 4, 2025 at 2:21 PM Luc Grosheintz <luc.groshei...@gmail.com> wrote: > 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 > >