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