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.

>
> 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