[PATCH v1] libstdc++: Set FMT for complete C++23 mdspan.
Luc Grosheintz
luc.grosheintz@gmail.com
Mon Jul 7 12:11:12 GMT 2025
On 7/7/25 13:30, Tomasz Kaminski wrote:
> Ah, I just missed the other e-mail, and just found it.
> Yes, in that case it makes sense to include it in the patch series.
> You may also update the last two commits.
I'm not quite sure what you mean by "update the last two commits".
Do you mean that I should update mdspan [v3 4/5] and [v3 5/5] but
leave the first three commits alone?
I would have just updated all commits according to the suggestions
you made.
>
> On Mon, Jul 7, 2025 at 1:27 PM Luc Grosheintz <luc.grosheintz@gmail.com>
> wrote:
>
>>
>>
>> On 7/7/25 13:24, Tomasz Kaminski wrote:
>>> On Mon, Jul 7, 2025 at 12:34 PM Luc Grosheintz <luc.grosheintz@gmail.com
>>>
>>> wrote:
>>>
>>>>
>>>>
>>>> On 7/7/25 11:45, Tomasz Kaminski wrote:
>>>>> On Mon, Jul 7, 2025 at 11:41 AM Luc Grosheintz <
>> luc.grosheintz@gmail.com
>>>>>
>>>>> wrote:
>>>>>
>>>>>> libstdc++-v3/ChangeLog:
>>>>>>
>>>>>> * include/bits/version.def (mdspan): Set to 202207 and
>> remove
>>>>>> no_stdname.
>>>>>> * include/bits/version.h: Regenerate.
>>>>>> * testsuite/23_containers/mdspan/mdspan_ftm.cc: Test
>> presence
>>>>>> of FTM.
>>>>>>
>>>>>> Signed-off-by: Luc Grosheintz <luc.grosheintz@gmail.com>
>>>>>> ---
>>>>>>
>>>>> Some minor suggestions below. Could you please also mention PR107761 in
>>>> the
>>>>> commit.
>>>>> We have automation that will put that in bugzilla, so people tracking
>>>>> issues can see it.
>>>>> I would do that in general for any new commits implementing language
>>>>> feature.
>>>>> Let me know if you will not be able to find a corresponding bugzilla
>>>> ticket.
>>>>
>>>> Makes sense, and I've been horribly inconsistent about this (I
>> completely
>>>> forgot during all of the layout patches).
>>>>
>>>> I'll add the updated commit to v4 of the mdspan patch series.
>>>>
>>> I will be merging patch series for mdspan with changes made locally.
>>> Please just send v2 of this patch.
>>
>> Even though there's a major complaint related to ADL issues in
>> swap?
>>
>> https://gcc.gnu.org/pipermail/libstdc++/2025-July/062380.html
>>
>>>
>>>>
>>>>>
>>>>>> libstdc++-v3/include/bits/version.def | 3 +--
>>>>>> libstdc++-v3/include/bits/version.h | 3 ++-
>>>>>> libstdc++-v3/testsuite/23_containers/mdspan/mdspan_ftm.cc | 6
>> ++++++
>>>>>> 3 files changed, 9 insertions(+), 3 deletions(-)
>>>>>> create mode 100644
>>>>>> libstdc++-v3/testsuite/23_containers/mdspan/mdspan_ftm.cc
>>>>>>
>>>>>> diff --git a/libstdc++-v3/include/bits/version.def
>>>>>> b/libstdc++-v3/include/bits/version.def
>>>>>> index f4ba501c403..ad909afd20e 100644
>>>>>> --- a/libstdc++-v3/include/bits/version.def
>>>>>> +++ b/libstdc++-v3/include/bits/version.def
>>>>>> @@ -1007,9 +1007,8 @@ ftms = {
>>>>>>
>>>>>> ftms = {
>>>>>> name = mdspan;
>>>>>> - no_stdname = true; // FIXME: remove
>>>>>> values = {
>>>>>> - v = 1; // FIXME: 202207
>>>>>> + v = 202207;
>>>>>> cxxmin = 23;
>>>>>> };
>>>>>> };
>>>>>> diff --git a/libstdc++-v3/include/bits/version.h
>>>>>> b/libstdc++-v3/include/bits/version.h
>>>>>> index dc8ac07be16..72f9231846e 100644
>>>>>> --- a/libstdc++-v3/include/bits/version.h
>>>>>> +++ b/libstdc++-v3/include/bits/version.h
>>>>>> @@ -1126,8 +1126,9 @@
>>>>>>
>>>>>> #if !defined(__cpp_lib_mdspan)
>>>>>> # if (__cplusplus >= 202100L)
>>>>>> -# define __glibcxx_mdspan 1L
>>>>>> +# define __glibcxx_mdspan 202207L
>>>>>> # if defined(__glibcxx_want_all) || defined(__glibcxx_want_mdspan)
>>>>>> +# define __cpp_lib_mdspan 202207L
>>>>>> # endif
>>>>>> # endif
>>>>>> #endif /* !defined(__cpp_lib_mdspan) &&
>>>> defined(__glibcxx_want_mdspan) */
>>>>>> diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/mdspan_ftm.cc
>>>>>> b/libstdc++-v3/testsuite/23_containers/mdspan/mdspan_ftm.cc
>>>>>> new file mode 100644
>>>>>> index 00000000000..fc528293e66
>>>>>> --- /dev/null
>>>>>> +++ b/libstdc++-v3/testsuite/23_containers/mdspan/mdspan_ftm.cc
>>>>>>
>>>>> I would name the file just ftm.
>>>>>
>>>>>> @@ -0,0 +1,6 @@
>>>>>> +// { dg-do compile { target c++23 } }
>>>>>> +#include <mdspan>
>>>>>> +
>>>>>> +#ifndef __cpp_lib_mdspan
>>>>>> +#error "Missing FTM"
>>>>>> +#endif
>>>>>>
>>>>> We usually use following to test the feature test macro:
>>>>> #ifndef __cpp_lib_ranges_to_container
>>>>> # error "Feature test macro for ranges_to_container is missing in
>>>> <ranges>"
>>>>> #elif __cpp_lib_ranges_to_container < 202202L
>>>>> # error "Feature test macro for ranges_to_container has wrong value in
>>>>> <ranges>"
>>>>> #endif
>>>>>
>>>>>
>>>>>> --
>>>>>> 2.49.0
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
More information about the Libstdc++
mailing list