diff options
author | Luc Grosheintz <luc.grosheintz@gmail.com> | 2025-09-04 14:20:29 +0200 |
---|---|---|
committer | Tomasz Kamiński <tkaminsk@redhat.com> | 2025-09-08 09:40:15 +0200 |
commit | 71711f8ac3af615fec197e4eb71d0bee8ef44a23 (patch) | |
tree | 91b900b4bf77dea049d49935f5e67031888775b3 /libgo/misc | |
parent | c440b585ba374b6348ef223e4891a717a1f6660c (diff) | |
download | gcc-71711f8ac3af615fec197e4eb71d0bee8ef44a23.zip gcc-71711f8ac3af615fec197e4eb71d0bee8ef44a23.tar.gz gcc-71711f8ac3af615fec197e4eb71d0bee8ef44a23.tar.bz2 |
libstdc++: Adjust span/mdspan CTAD for P2781R9.
A usecase for P2781R9 is more ergonomic creation of span and mdspan with
mixed static and dynamic extents, e.g.:
span(ptr, cw<3>)
extents(cw<3>, 5, cw<7>)
mdspan(ptr, cw<3>, 5, cw<7>)
should be deduced as:
span<..., 3>
extents<..., 3, dyn, 7>
mdspan<..., extents<..., 3, dyn, 7>>
The change required is to strip cv-qualifiers and references from
`_Tp::value`, because of:
template<_CwFixedValue _X, typename>
struct constant_wrapper : _CwOperators
{
static constexpr const auto& value = _X._M_data;
libstdc++-v3/ChangeLog:
* include/std/span (__integral_constant_like): Allow the member
`value` of a constant wrapping type to be a const reference of
an integer.
* testsuite/23_containers/mdspan/extents/misc.cc: Add test for
cw and constant_wrapper.
* testsuite/23_containers/mdspan/mdspan.cc: Ditto.
* testsuite/23_containers/span/deduction.cc: Ditto.
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
Signed-off-by: Luc Grosheintz <luc.grosheintz@gmail.com>
Diffstat (limited to 'libgo/misc')
0 files changed, 0 insertions, 0 deletions