On Wed, 10 Sept 2025 at 09:44, Jonathan Wakely <jwak...@redhat.com> wrote:
>
> On Wed, 10 Sept 2025 at 07:49, 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
> > double underscore instead.
>
> Thanks for revisiting these.
>
> >
> > libstdc++-v3/ChangeLog:
> >
> >         * include/std/mdspan (_ExtentsStorage::__base): New name for
> >         _S_base.
> >         (_ExtentsStorage::__storage_type): New name for _S_storage.
> >         (extents::__storage_type): New name for _S_storage.
> >         (layout_stride::mapping::__strides_type): 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               | 33 ++++++++++---------
> >  .../23_containers/mdspan/class_mandate_neg.cc |  2 +-
> >  2 files changed, 18 insertions(+), 17 deletions(-)
> >
> > diff --git a/libstdc++-v3/include/std/mdspan 
> > b/libstdc++-v3/include/std/mdspan
> > index 678b2619ebe..f0139a95b11 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>;
>
> Looking through the other headers, we usually use _Base for this case,
> and for other typedefs that are private to the class (and its
> friends).
>
> Yes, that's inconsistent with __type that we use in some internal type
> traits, but in those cases __type is public and we intend it to be
> used from outside the class, by code using it. e.g. constant_wrapper
> uses _CwFixedValue::__type.

I should make some updates to
https://gcc.gnu.org/onlinedocs/libstdc++/manual/source_code_style.html
to cover this.

And turn that numbered list into a proper DocBook <variablelist>, and
remove number 10 (about prefixing members with 'this->' because of
Koenig lookup, which is just wrong).

Reply via email to