Calico
|
Miscellaneous utility macros. More...
Macros | |
#define | cal_cat(x, y) |
Concatenate two tokens. More... | |
#define | cal_cmp(ctx, x, y) |
Compare two values, returning a negative value if less than, positive value if greater than, and zero if equal. More... | |
#define | cal_cond(cond) |
Expand to the first argument if the condition is 1, or the second argument if the condition is 0. More... | |
#define | cal_cond_ndebug(x, y) |
Expand to the first argument if NDEBUG is defined. More... | |
#define | CAL_FUNC |
Expand to __func__ if available, else NULL . More... | |
#define | cal_max(x, y) |
Calculate the maximum of two values. More... | |
#define | cal_min(x, y) |
Calculate the minimum of two values. More... | |
#define | cal_minlog2(x) |
Obtain a lower bound on the logarithm of a number. | |
#define | CAL_NOARG |
A macro that expands to nothing. More... | |
#define | cal_pcmp(ctx, x, y) |
Compare two values pointed by the given pointers, returning a negative value if less than, positive value if greater than, and zero if equal. More... | |
#define | cal_pstrcmp(ctx, x, y) |
Compare two null-terminated strings pointed by the given pointers using strcmp . More... | |
#define | cal_stringify(x) |
Convert an expression into a string literal. More... | |
#define | CAL_WARNUNUSED |
If available, expand to a built-in function attribute that warns if the function is called without using its result. More... | |
Miscellaneous utility macros.
This header can be included multiple times.
#define cal_cat | ( | x, | |
y | |||
) |
Concatenate two tokens.
#define cal_cmp | ( | ctx, | |
x, | |||
y | |||
) |
Compare two values, returning a negative value if less than, positive value if greater than, and zero if equal.
#define cal_cond | ( | cond | ) |
Expand to the first argument if the condition is 1, or the second argument if the condition is 0.
The behavior is unspecified if the condition is neither 1 nor 0.
Usage: cal_cond(condition)(value_if_1, value_if_0)
#define cal_cond_ndebug | ( | x, | |
y | |||
) |
Expand to the first argument if NDEBUG is defined.
Otherwise, expand to the second argument.
#define CAL_FUNC |
Expand to __func__
if available, else NULL
.
#define cal_max | ( | x, | |
y | |||
) |
Calculate the maximum of two values.
#define cal_min | ( | x, | |
y | |||
) |
Calculate the minimum of two values.
#define CAL_NOARG |
A macro that expands to nothing.
Useful if you want to pass nothing to the argument of a function-like macro, since they are forbidden in older versions of C and C++.
#define cal_pcmp | ( | ctx, | |
x, | |||
y | |||
) |
Compare two values pointed by the given pointers, returning a negative value if less than, positive value if greater than, and zero if equal.
#define cal_pstrcmp | ( | ctx, | |
x, | |||
y | |||
) |
Compare two null-terminated strings pointed by the given pointers using strcmp
.
#define cal_stringify | ( | x | ) |
Convert an expression into a string literal.
#define CAL_WARNUNUSED |
If available, expand to a built-in function attribute that warns if the function is called without using its result.