|
P99
|
Preprocessor macros that return tokens 0 or 1 according to the evaluation of their arguments. More...
Collaboration diagram for Preprocessor Boolean operations:Defines | |
| #define | P99_IS_EQ(_0, _1) P99_HAS_COMMA(P99_PASTE4(P00_IS_, _0, _EQ_, _1)()) |
| Determine if the two tokens _0 and _1 are equal. | |
| #define | P99_IS_GE(_0, _1) P00_GE( P99_IS_EQ_0(_1), P99_CHS(_0, P99_SELS(_1, P00_ALL_ZEROES()), P00_ALL_ONES())) |
| a decimal greater or equal operator | |
| #define | P99_IS_GT(_0, _1) P99_IS_LT(_1, _0) |
| a decimal greater than operator | |
| #define | P99_IS_LE(_0, _1) P99_IS_GE(_1, _0) |
| a decimal less or equal operator | |
| #define | P99_IS_LT(_0, _1) P00_LT( P99_IS_EQ_0(_1), P99_CHS(_0, P99_SELS(_1, P00_ALL_ONES()), P00_ALL_ZEROES())) |
| a decimal less than operator | |
| #define | P99_IS_VOID(...) P00_IS_VOID(P99_IS_EMPTY(__VA_ARGS__), P99_IS_EQ_void(__VA_ARGS__)) |
Test whether or not its argument is empty or if it consists of the word void. | |
| #define | P99_LOGIC_AND(A, B) P00_LOGIC_AND(P99_LOGIC_EVAL(A), P99_LOGIC_EVAL(B)) |
| Do a logical and of the arguments. | |
| #define | P99_LOGIC_EVAL(_0) P00_EVAL_0(P99_IS_EMPTY(_0), P99_IS_EQ_0(_0)) |
| Do a evaluation of the argument. | |
| #define | P99_LOGIC_NOT(A) P00_NOT_0(P99_IS_EMPTY(_0), P99_IS_EQ_0(_0)) |
| Do a logical negation of the argument. | |
| #define | P99_LOGIC_OR(A, B) P00_LOGIC_OR(P99_LOGIC_EVAL(A), P99_LOGIC_EVAL(B)) |
| Do a logical inclusive or of the arguments. | |
| #define | P99_LOGIC_XOR(A, B) P99_IS_EQ(P99_LOGIC_NOT(A), P99_LOGIC_EVAL(B)) |
| Do a logical exclusive or of the arguments. | |
Preprocessor macros that return tokens 0 or 1 according to the evaluation of their arguments.
1.7.6.1