[SG10] Generalized/relaxed const. expr.

Jens Maurer Jens.Maurer at gmx.net
Tue Jun 4 22:30:28 CEST 2013


On 06/04/2013 05:33 PM, Nelson, Clark wrote:
> I note that no one has (yet) specifically argued that the difference
> between C++11 and C++14 in this area is subtle or minor -- that being
> the criterion I would prefer for using a different macro value,
> instead of a different name.

>From an engineering tidiness point-of-view, I do have a preference
to change macro values instead of having more macro name pollution.
Remember we'll have >100 macro names within a decade or so, all
addressing one or the other corner of the language. 

#if __cpp_constexpr > 201300
...   // stellar constexpr
#elif __cpp_constexpr 
...   // use ugly recursion to simulate iteration
#else
...   // just give up
#endif

seems reasonable, and compares well against

#if __cpp_constexpr_iteration

#elif __cpp_constexpr

#endif


Whatever macro name we choose, it's likely that you need an additional
comment in your source code to explain what the precise sub-feature
is you're depending on, so simply using __cpp_constexpr seems to give
enough of a clue for my taste.  (I don't buy the "minor feature"
argument here, but that's just my weak personal opinion.)

Thanks,
Jens


More information about the Features mailing list