RFR: 8067306: Improve STATIC_ASSERT
stefan.karlsson at oracle.com
Fri Dec 19 10:11:39 UTC 2014
On 12/12/14 18:04, Kim Barrett wrote:
> On Dec 12, 2014, at 6:47 AM, Stefan Karlsson <stefan.karlsson at oracle.com> wrote:
>> On 2014-12-12 08:30, Kim Barrett wrote:
>>> Please review this enhancement to the hotspot STATIC_ASSERT() macro.
>> Why do you use '(cond) ? true : false' instead of just '(cond)'?
>> 243 STATIC_ASSERT_FAILURE< (Cond) ? true : false >::value ] \
> Paranoia regarding ancient tool chains. There are purportedly some
> which don't do the implicit conversion to bool properly in this
> context. I don't know if we actually care about such...
Would it just not compile or would it produce the wrong answer? If it
just wouldn't compile I don't think we should add this extra line noise.
If we encounter a problem with it we'll find out and then we can add
this workaround. The previous code already worked with only <cond>.
>> Why do you have this line at the end of the define:
>> 244 /* */
> Force of habit; this is something I picked up ages ago, providing an
> easy to spot marker for the end of a multi-line macro body. I don't
> mind removing it.
> Hm, I also forgot to right adjust all the line continuation markers,
> which seems to be the preferred style in hotspot code. I've never
> liked that sort of formatting thing because it can lead to unnecessary
> (and potentially large) diff expansion during maintenance, but it *is*
> the local style...
More information about the hotspot-gc-dev