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