Just a suggestion . . .

For:

QUOTE
+#elif ((defined(INVARIANTS) && !defined(WITNESS)) || \
+       (!defined(INVARIANTS) && defined(WITNESS)))
 #define        __diagused      __unused
END QUOTE

something like the following seems far more direct to me:

+#elif defined(INVARIANTS) != defined(WITNESS)
 #define        __diagused      __unused

Boolean == and != are well defined, even in languages
where Boolean is fully distinct from numeric types.
Expressing everything via NOT, AND, and possible OR
makes various notations messy for simple concepts.

Hardware folks call != by the name XOR instead of
inequality.

Equal length "vectors" of Booleans have != and XOR being
distinct, XOR being a "Booleanwise" (bitwise) != producing
a vector of Booleans, the resulting vector again being of
matching length. By contrast != for equal length vectors
of Booleans producing just one overall Boolean for if the
count of non-matching Booleans in an XOR would be
positive (TRUE) vs. zero (FALSE).

Food for thought.

===
Mark Millard
marklmi at yahoo.com


Reply via email to