On Wed, Sep 10, 2025 at 12:33 PM Jonathan Wakely <jwak...@redhat.com> wrote:

> On Wed, 10 Sept 2025 at 11:12, Luc Grosheintz <luc.groshei...@gmail.com>
> wrote:
> >
> > In libstdc++ the prefix _S is used for static members only. In <mdspan>
> > there's several type aliases that also used the prefix _S. They now use
> > a single leading underscore follow by a capital letter instead.
>
> OK for trunk, thanks.
>
Pushed to the trunk.

>
> >
> > libstdc++-v3/ChangeLog:
> >
> >         * include/std/mdspan (_ExtentsStorage::_Base): New name for
> >         _S_base.
> >         (_ExtentsStorage::_Storage): New name for _S_storage.
> >         (extents::_Storage): New name for _S_storage.
> >         (layout_stride::mapping::_Strides): New name for
> >         _S_stries_t.
> >         * testsuite/23_containers/mdspan/class_mandate_neg.cc: Update
> >         test to the new error message.
> >
> > Signed-off-by: Luc Grosheintz <luc.groshei...@gmail.com>
> > ---
> >  libstdc++-v3/include/std/mdspan               | 34 +++++++++----------
> >  .../23_containers/mdspan/class_mandate_neg.cc |  2 +-
> >  2 files changed, 18 insertions(+), 18 deletions(-)
> >
> > diff --git a/libstdc++-v3/include/std/mdspan
> b/libstdc++-v3/include/std/mdspan
> > index 678b2619ebe..01d3b2cb6b1 100644
> > --- a/libstdc++-v3/include/std/mdspan
> > +++ b/libstdc++-v3/include/std/mdspan
> > @@ -148,14 +148,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >        class _ExtentsStorage : public _StaticExtents<_Extents>
> >        {
> >        private:
> > -       using _S_base = _StaticExtents<_Extents>;
> > +       using _Base = _StaticExtents<_Extents>;
> >
> >        public:
> > -       using _S_base::_S_rank;
> > -       using _S_base::_S_rank_dynamic;
> > -       using _S_base::_S_dynamic_index;
> > -       using _S_base::_S_dynamic_index_inv;
> > -       using _S_base::_S_static_extent;
> > +       using _Base::_S_rank;
> > +       using _Base::_S_rank_dynamic;
> > +       using _Base::_S_dynamic_index;
> > +       using _Base::_S_dynamic_index_inv;
> > +       using _Base::_S_static_extent;
> >
> >         static constexpr bool
> >         _S_is_dynamic(size_t __r) noexcept
> > @@ -242,8 +242,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >         }
> >
> >        private:
> > -       using _S_storage = __array_traits<_IndexType,
> _S_rank_dynamic>::_Type;
> > -       [[no_unique_address]] _S_storage _M_dyn_exts{};
> > +       using _Storage = __array_traits<_IndexType,
> _S_rank_dynamic>::_Type;
> > +       [[no_unique_address]] _Storage _M_dyn_exts{};
> >        };
> >
> >      template<typename _OIndexType, typename _SIndexType>
> > @@ -259,7 +259,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >      template<typename _Extents>
> >        constexpr const array<size_t, _Extents::rank()>&
> >        __static_extents() noexcept
> > -      { return _Extents::_S_storage::_S_static_extents(); }
> > +      { return _Extents::_Storage::_S_static_extents(); }
> >
> >      // Pre-compute: \prod_{i = 0}^r _Extents[i], for r = 0,..., n
> (exclusive)
> >      template<array _Extents>
> > @@ -314,10 +314,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >        using rank_type = size_t;
> >
> >        static constexpr rank_type
> > -      rank() noexcept { return _S_storage::_S_rank; }
> > +      rank() noexcept { return _Storage::_S_rank; }
> >
> >        static constexpr rank_type
> > -      rank_dynamic() noexcept { return _S_storage::_S_rank_dynamic; }
> > +      rank_dynamic() noexcept { return _Storage::_S_rank_dynamic; }
> >
> >        static constexpr size_t
> >        static_extent(rank_type __r) noexcept
> > @@ -326,7 +326,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >         if constexpr (rank() == 0)
> >           __builtin_trap();
> >         else
> > -         return _S_storage::_S_static_extent(__r);
> > +         return _Storage::_S_static_extent(__r);
> >        }
> >
> >        constexpr index_type
> > @@ -423,9 +423,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >        friend span<const index_type>
> >        __mdspan::__dynamic_extents<extents>(const extents&, size_t,
> size_t);
> >
> > -      using _S_storage = __mdspan::_ExtentsStorage<
> > +      using _Storage = __mdspan::_ExtentsStorage<
> >         _IndexType, array<size_t, sizeof...(_Extents)>{_Extents...}>;
> > -      [[no_unique_address]] _S_storage _M_exts;
> > +      [[no_unique_address]] _Storage _M_exts;
> >
> >        template<typename _OIndexType, size_t... _OExtents>
> >         friend class extents;
> > @@ -1158,10 +1158,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> >         }
> >
> >      private:
> > -      using _S_strides_t = typename __array_traits<index_type,
> > -
> extents_type::rank()>::_Type;
> > +      using _Strides = typename __array_traits<index_type,
> > +
> extents_type::rank()>::_Type;
> >        [[no_unique_address]] extents_type _M_extents;
> > -      [[no_unique_address]] _S_strides_t _M_strides;
> > +      [[no_unique_address]] _Strides _M_strides;
> >      };
> >
> >    template<typename _ElementType>
> > diff --git
> a/libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc
> b/libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc
> > index de19b6d85c9..172f149176f 100644
> > --- a/libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc
> > +++ b/libstdc++-v3/testsuite/23_containers/mdspan/class_mandate_neg.cc
> > @@ -35,7 +35,7 @@ test_element_type_mismatch()
> >  static_assert(test_element_type_mismatch());
> >
> >  // { dg-prune-output "Extents must be a specialization of std::extents"
> }
> > -// { dg-prune-output "no type named '_S_storage'" }
> > +// { dg-prune-output "no type named '_Storage'" }
> >  // { dg-prune-output "non-constant condition" }
> >  // { dg-prune-output "static assertion failed" }
> >  // { dg-prune-output "__glibcxx_assert" }
> > --
> > 2.50.1
> >
>
>

Reply via email to