On Wed, 9 Apr 2025, 08:25 Luc Grosheintz, <luc.groshei...@gmail.com> wrote:
> Creates a nearly empty header mdspan and adds it to the build-system and > Doxygen config file. > Nice, thanks! I'll look at these patches properly another time (I'm unavailable today) but one quick comment below ... > libstdc++-v3/ChangeLog: > > * doc/doxygen/user.cfg.in: Add <mdspan>. > * include/Makefile.am: Ditto. > * include/Makefile.in: Ditto. > * include/precompiled/stdc++.h: Ditto. > * include/std/mdspan: New file. > > Signed-off-by: Luc Grosheintz <luc.groshei...@gmail.com> > --- > libstdc++-v3/doc/doxygen/user.cfg.in | 1 + > libstdc++-v3/include/Makefile.am | 1 + > libstdc++-v3/include/Makefile.in | 1 + > libstdc++-v3/include/precompiled/stdc++.h | 4 ++ > libstdc++-v3/include/std/mdspan | 48 +++++++++++++++++++++++ > 5 files changed, 55 insertions(+) > create mode 100644 libstdc++-v3/include/std/mdspan > > diff --git a/libstdc++-v3/doc/doxygen/user.cfg.in > b/libstdc++-v3/doc/doxygen/user.cfg.in > index ae50f6dd0c7..be42ea5d6b1 100644 > --- a/libstdc++-v3/doc/doxygen/user.cfg.in > +++ b/libstdc++-v3/doc/doxygen/user.cfg.in > @@ -878,6 +878,7 @@ INPUT = > @srcdir@/doc/doxygen/doxygroups.cc > \ > include/list \ > include/locale \ > include/map \ > + include/mdspan \ > include/memory \ > include/memory_resource \ > include/mutex \ > diff --git a/libstdc++-v3/include/Makefile.am > b/libstdc++-v3/include/Makefile.am > index 537774c2668..1140fa0dffd 100644 > --- a/libstdc++-v3/include/Makefile.am > +++ b/libstdc++-v3/include/Makefile.am > @@ -38,6 +38,7 @@ std_freestanding = \ > ${std_srcdir}/generator \ > ${std_srcdir}/iterator \ > ${std_srcdir}/limits \ > + ${std_srcdir}/mdspan \ > ${std_srcdir}/memory \ > ${std_srcdir}/numbers \ > ${std_srcdir}/numeric \ > diff --git a/libstdc++-v3/include/Makefile.in > b/libstdc++-v3/include/Makefile.in > index 7b96b2207f8..c96e981acd6 100644 > --- a/libstdc++-v3/include/Makefile.in > +++ b/libstdc++-v3/include/Makefile.in > @@ -396,6 +396,7 @@ std_freestanding = \ > ${std_srcdir}/generator \ > ${std_srcdir}/iterator \ > ${std_srcdir}/limits \ > + ${std_srcdir}/mdspan \ > ${std_srcdir}/memory \ > ${std_srcdir}/numbers \ > ${std_srcdir}/numeric \ > diff --git a/libstdc++-v3/include/precompiled/stdc++.h > b/libstdc++-v3/include/precompiled/stdc++.h > index 1ffde3ed450..56c480b6203 100644 > --- a/libstdc++-v3/include/precompiled/stdc++.h > +++ b/libstdc++-v3/include/precompiled/stdc++.h > @@ -237,6 +237,10 @@ > #include <stdfloat> > #endif > > +#if __cpluslus >= 202207L > Typo in the macro name here. +#include <mdspan> > +#endif > + > #if __cplusplus > 202302L > #include <text_encoding> > #endif > diff --git a/libstdc++-v3/include/std/mdspan > b/libstdc++-v3/include/std/mdspan > new file mode 100644 > index 00000000000..4094a416d1e > --- /dev/null > +++ b/libstdc++-v3/include/std/mdspan > @@ -0,0 +1,48 @@ > +// <mdspan> -*- C++ -*- > + > +// Copyright (C) 2025 Free Software Foundation, Inc. > +// > +// This file is part of the GNU ISO C++ Library. This library is free > +// software; you can redistribute it and/or modify it under the > +// terms of the GNU General Public License as published by the > +// Free Software Foundation; either version 3, or (at your option) > +// any later version. > + > +// This library is distributed in the hope that it will be useful, > +// but WITHOUT ANY WARRANTY; without even the implied warranty of > +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +// GNU General Public License for more details. > + > +// Under Section 7 of GPL version 3, you are granted additional > +// permissions described in the GCC Runtime Library Exception, version > +// 3.1, as published by the Free Software Foundation. > + > +// You should have received a copy of the GNU General Public License and > +// a copy of the GCC Runtime Library Exception along with this program; > +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see > +// <http://www.gnu.org/licenses/>. > + > +/** @file mdspan > + * This is a Standard C++ Library header. > + */ > + > +#ifndef _GLIBCXX_MDSPAN > +#define _GLIBCXX_MDSPAN 1 > + > +#ifdef _GLIBCXX_SYSHDR > +#pragma GCC system_header > +#endif > + > +#define __glibcxx_want_mdspan > +#include <bits/version.h> > + > +#ifdef __glibcxx_mdspan > + > +namespace std _GLIBCXX_VISIBILITY(default) > +{ > +_GLIBCXX_BEGIN_NAMESPACE_VERSION > + > +_GLIBCXX_END_NAMESPACE_VERSION > +} > +#endif > +#endif > -- > 2.49.0 > >