Subject: Re: [SG10] Jacksonville additions
From: John Spicer (jhs_at_[hidden])
Date: 2016-03-10 16:54:47
> On Mar 10, 2016, at 5:10 PM, Nelson, Clark <clark.nelson_at_[hidden]> wrote:
>> On 03/10/2016 01:41 PM, John Spicer wrote:
>>> Iâm wondering whether some of these should be updated values of
>> existing macros.
>>> For example, capture of this and constexpr lambdas *could* be an
>> update of __cpp_lambdas.
>> Agreed, sounds more reasonable to me.
> I can see how the ability to add "constexpr" to a lambda might be
> considered just a tweak. But, for example, we already have
> A new kind of capture seems to me to be a different sort of thing.
> And, for example, we already have __cpp_init_captures.
I guess the question gets back to the issue that Jason alluded to. To what extent, if any, does support for a later feature imply support for an earlier one.
Although there is no guarantee that this will be the case, I think we could assume that all C++14 features will be implemented when people are trying to detect C++17 features.
Iâm trying to find the balance between too many macros and not enough macros.
Somewhere the guideline that you must have a reasonable way to write the code with or without the feature for the macro to be helpful.
Although I donât recall where we came down on the question about using a macro just as a static_assert to say âyou canât compile this code with this compilerâ.
I think my current feeling is:
1. It is good to have fewer macros in cases where that makes sense.
2. Constexpr lambdas is more of a constexpr feature than a lambda one.
3. We might want to choose values in a way that we think indicates a likely ordering and not simply on the date of the paper. For example. init captures has the same date as generic lambdas, but I think it is unlikely for someone to implement generic lambdas without init captures.
On the other hand, I can see the argument that a larger number of simple macros is better than a smaller number of more complex ones.
What do folks think?
SG10 list run by email@example.com