16static inline signed int max2_signed(
signed int a,
signed int b) {
17 return (a > b) ? a : b;
21static inline unsigned int max2_unsigned(
unsigned int a,
unsigned int b) {
22 return (a > b) ? a : b;
27 return (a > b) ? a : b;
30#define MAXOF2(a, b) _Generic((a) + (b), \
31 signed int: max2_signed, \
32 unsigned int: max2_unsigned, \
36#define MAXOF3(a, b, c) MAXOF2(MAXOF2(a, b), c)
37#define MAXOF4(a, b, c, d) MAXOF2(MAXOF2(a, b), MAXOF2(c, d))
41#define DISPATCH_MAXOF(_1, _2, _3, _4, NAME, ...) NAME
42#define MAXOF(...) DISPATCH_MAXOF(__VA_ARGS__, MAXOF4, MAXOF3, MAXOF2)(__VA_ARGS__)
static signed int max2_signed(signed int a, signed int b)
Definition max.h:16
static unsigned int max2_unsigned(unsigned int a, unsigned int b)
Definition max.h:21
static float max2_float(float a, float b)
Definition max.h:26