On 9/5/25 09:17, Tomasz Kaminski wrote:
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.
Nice addition! Likewise thank you for the speedy reviews, answers and
taking care of getting the patches merged.
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