#define CMP(T) \
( \
_Generic((T) 0, \
- int *: cmp_int, \
- long *: cmp_long, \
- unsigned int *: cmp_uint, \
- unsigned long *: cmp_ulong \
+ int: cmp_int, \
+ long: cmp_long, \
+ unsigned int: cmp_uint, \
+ unsigned long: cmp_ulong \
) \
)
({ \
_Generic(k, T *: 0, const T *: 0); \
_Generic(a, T *: 0, const T *: 0); \
- (T *) lfind_(k, a, n, sizeof(T), CMP(T *)); \
+ (T *) lfind_(k, a, n, sizeof(T), CMP(T)); \
})
({ \
_Generic(k, T *: 0, const T *: 0); \
_Generic(a, T *: 0); \
- (T *) lsearch(k, a, n, sizeof(T), CMP(T *)); \
+ (T *) lsearch(k, a, n, sizeof(T), CMP(T)); \
})
#define QSORT(T, a, n) do \
{ \
_Generic(a, T *: 0); \
- qsort(a, n, sizeof(T), CMP(T *)); \
+ qsort(a, n, sizeof(T), CMP(T)); \
} while (0)