C++ Logo

sg10

Advanced search

Re: [isocpp-sg10] FTM for Rebasing C++26 on C23

From: Jonathan Wakely <cxx_at_[hidden]>
Date: Tue, 17 Sep 2024 15:22:32 +0100
On Tue, 17 Sept 2024 at 15:01, Inbal Levi <sinbal2l_at_[hidden]> wrote:

> Thank you, Jonathan!
> Adding chair for today (Fabio) and co-chairs as FYI.
>
> > We also haven't got a decision on what to do with the new math and
> numerics stuff in C23.
> True. I see the new utils are not added as part of your paper, so we can
> move forward with the paper today. We'll get back to that when we have
> SG4's input.
> I'll ping Mattias (I thought I did, but must have forgotten to..)
>
> > LEWG should decide whether to incorporate <stdckint.h> as-is if we're
> not going to have something like it in time for C++26 (0). (from document)
> > C++ has no equivalent currently, but we probably don’t want
> type-generic macros like C has. (from P3348R0)
> > For stdckdint.h we're not going to use the C header, so should not
> define the C macro.
>
> I was referring to this as an open question, as it wasn't voted on yet,
> but I know your paper doesn't propose adding it.
> I (personally) agree that having this in C++ shape is better (and we might
> need a follow-up paper for that), and that it's probably better to have
> nothing in 26 than adding the C shape.
> Might be worth bringing up in LEWG (and if they do ask to add the C shape
> as well, then figure out what to do).
>

P3370 already has the macro, so I don't think we need to figure out what to
do if LEWG do want it.

I assume the motivation for adding it was so mixed C/C++ headers can use
the same macro to check for the features whether the header is compiled as
C or C++/



>
> > If it is (in C++ shape), it should be in the __cpp_lib_xxx form.
> Sure, makes sense. Thanks :)
>
> *See you soon!*
>
>
> Best Regards,
> Inbal Levi
>
> ISO C++ LEWG Chair & Israeli NB Chair
> C++Now Program Chair & CoreC++ Conference Organizer
>
>
> On Tue, 17 Sept 2024 at 15:59, Jonathan Wakely <cxx_at_[hidden]> wrote:
>
>>
>>
>> On Tue, 17 Sept 2024 at 13:52, Inbal Levi <sinbal2l_at_[hidden]> wrote:
>>
>>> Hello SG10,
>>> We're in the process of rebasing C++ on C (we will see a paper today)
>>> and wanted your input on what to do with the C macros:
>>> https://en.cppreference.com/w/c/23
>>> (e.g __STDC_VERSION_STDCKDINT_H__
>>> <https://en.cppreference.com/mwiki/index.php?title=STDC_VERSION_STDCKDINT_H&action=edit&redlink=1>
>>> , __STDC_VERSION_FENV_H__ <https://en.cppreference.com/w/c/numeric/fenv> might
>>> be relevant)
>>>
>>> IIUC, we don't port these?
>>>
>>
>> It's never been a question before, C17 didn't have any such macros.
>> They're new in C23.
>>
>>
>>
>>>
>>> https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html#Standard-Predefined-Macros-1
>>>
>>
>> I don't think that document is relevant, those macros are defined by
>> library headers not the compiler.
>>
>>
>>>
>>> Should we consider redefining them in the __cplusplus shape?
>>>
>>
>> The macro for <fenv.h> comes from a C header, and the C++ library doesn't
>> add anything to that header. I don't see any point in the C++ library
>> requiring new macros for a header that isn't controlled by the C++
>> implementation. We also haven't got a decision on what to do with the new
>> math and numerics stuff in C23.
>>
>> For stdckdint.h we're not going to use the C header, so should not define
>> the C macro. The proposal to add a C++ version of that header should
>> consider whether a feature test macro is needed. If it is, it should be in
>> the __cpp_lib_xxx form.
>>
>

Received on 2024-09-17 14:23:51