Can you give a motivating example from WebKit?

Geoff

On Apr 19, 2014, at 1:09 PM, Filip Pizlo <fpi...@apple.com> wrote:

> Hey everyone,
> 
> When guarding code with macros that are always defined, such as 
> ASSERT_DISABLED (it's always either 0 or 1), we have a choice between:
> 
>       if (!ASSERT_DISABLED) {
>           // do things
>       }
> 
> and:
> 
> #if !ASSERT_DISABLED
>       // do things
> #endif
> 
> I'd like to propose that anytime the normal if would be semantically 
> equivalent to the preprocessor #if, the normal if should be used.
> 
> We don't lose any compiler optimization, since even at -O0, the compiler will 
> constant fold the normal if.  We do gain a lot of clarity, since the control 
> flow of normal if statements is subject to proper indentation.
> 
> The "semantically equivalent" requirement still allows for #if to be used for 
> thinngs like:
> 
> - Guarding the placement of fields in a class.
> - Guarding the definitions of other macros (in the case of ASSERT_DISABLED, 
> we define ASSERT in different ways guarded by #if's)
> - Guarding the definition/declaration/inclusion of entire functions, classes, 
> and other top-level constructs.
> 
> Thoughts?
> 
> -Phil
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to