On Wed, Sep 3, 2025 at 6:03 PM Jonathan Wakely <[email protected]> wrote:
> On Wed, 3 Sept 2025 at 16:30, Luc Grosheintz <[email protected]> > wrote: > > > > In r16-2328-g29d53f6213e0a1 we fixed a bug related to user-defined > > objects that can convert to an integers only via an rvalue reference. > > The same commit also implemented LWG 4314 [1], but didn't mark it with > > _GLIBCXX_RESOLVE_LIB_DEFECTS. This commit adds the missing markers. > > > > [1]: https://cplusplus.github.io/LWG/issue4314 > > > > It also fixes one cases of trailing white-space near a ctor for > > aligned_accessor. > > OK, thanks. > Pushed to the trunk. > > > > > > libstdc++-v3/ChangeLog: > > > > * include/std/mdspan (layout_left::mapping::operator()): Add > > _GLIBCXX_RESOLVE_LIB_DEFECTS marker for 4314. > > (layout_left::mapping::operator()): Ditto. > > (layout_stride::mapping::operator()): Ditto. > > > > Signed-off-by: Luc Grosheintz <[email protected]> > > --- > > libstdc++-v3/include/std/mdspan | 8 +++++++- > > 1 file changed, 7 insertions(+), 1 deletion(-) > > > > diff --git a/libstdc++-v3/include/std/mdspan > b/libstdc++-v3/include/std/mdspan > > index 6c7469cd2d8..678b2619ebe 100644 > > --- a/libstdc++-v3/include/std/mdspan > > +++ b/libstdc++-v3/include/std/mdspan > > @@ -727,6 +727,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > required_span_size() const noexcept > > { return __mdspan::__size(_M_extents); } > > > > + // _GLIBCXX_RESOLVE_LIB_DEFECTS > > + // 4314. Missing move in mdspan layout mapping::operator() > > template<__mdspan::__valid_index_type<index_type>... _Indices> > > requires (sizeof...(_Indices) == extents_type::rank()) > > constexpr index_type > > @@ -866,6 +868,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > required_span_size() const noexcept > > { return __mdspan::__size(_M_extents); } > > > > + // _GLIBCXX_RESOLVE_LIB_DEFECTS > > + // 4314. Missing move in mdspan layout mapping::operator() > > template<__mdspan::__valid_index_type<index_type>... _Indices> > > requires (sizeof...(_Indices) == extents_type::rank()) > > constexpr index_type > > @@ -1089,6 +1093,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > return __ret; > > } > > > > + // _GLIBCXX_RESOLVE_LIB_DEFECTS > > + // 4314. Missing move in mdspan layout mapping::operator() > > template<__mdspan::__valid_index_type<index_type>... _Indices> > > requires (sizeof...(_Indices) == extents_type::rank()) > > constexpr index_type > > @@ -1208,7 +1214,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION > > aligned_accessor() noexcept = default; > > > > template<typename _OElementType, size_t _OByteAlignment> > > - requires (_OByteAlignment >= byte_alignment) > > + requires (_OByteAlignment >= byte_alignment) > > && is_convertible_v<_OElementType(*)[], element_type(*)[]> > > constexpr > > aligned_accessor(aligned_accessor<_OElementType, > _OByteAlignment>) > > -- > > 2.51.0 > > > >
