C++ Logo

sg10

Advanced search

Re: [SG10] Missing feature test macros for C++20 core papers

From: Barry Revzin <barry.revzin_at_[hidden]>
Date: Fri, 15 Oct 2021 17:55:20 -0500
On Fri, Oct 15, 2021 at 5:27 PM Jonathan Wakely via SG10 <
sg10_at_[hidden]> wrote:

> I think the following papers should have had a feature test macro:
>
> P0848
> <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0848r3.html>
> Conditionally Trivial Special Member Functions
>
> P1330
> <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1330r0.pdf>
> Changing the active member of a union inside constexpr
>
> I need a union in order to implement the std::variant changes in P2231
> <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2231r1.html>
> and a conditionally trivial destructor makes it easier. In order to define
> the __cpp_lib_constexpr_variant macro correctly I need to know if the union
> usage is actually going to work, but there's no macro for P1330, so I can't
> tell.
>
> A macro for constexpr destructors (P0784R7
> <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0784r7.html>?)
> might have been nice too, because if the compiler doesn't support it then
> you get an error for even trying to declare a destructor constexpr. Without
> a feature test macro there's no reliable way to try to use the feature.
>
> If all the compilers I need to support already implemented those features,
> I wouldn't care, but they don't.
>
> https://godbolt.org/z/qG6d7TxhE
>

I suppose given that not all compilers support them, it's not too late to
go back and add the feature test macro? Although the compilers that do
support it don't provide the macro - what do you think about the false
negatives there?

Barry

Received on 2021-10-15 17:55:35