macrohax: add utilities for implementing macro overloads

This commit is contained in:
Andrei Alexeyev 2021-08-12 19:30:27 +03:00
parent d89d0896e2
commit cf92f499cf
No known key found for this signature in database
GPG key ID: 72D26128040B9690

View file

@ -53,4 +53,16 @@
_17, _18, _19, _20, _21, _22, _23, _24, \
_25, _26, _27, _28, _29, _30, _31, _32, N, ...) N
// Expands to baseN, where N is the number of arguments.
#define MACROHAX_OVERLOAD_NARGS(base, ...) \
MACROHAX_EXPAND(\
MACROHAX_DEFER(MACROHAX_CONCAT)(base, MACROHAX_NARGS(__VA_ARGS__))\
)
// Expands to baseN, where N is 0 if the argument list is empty, 1 otherwise.
#define MACROHAX_OVERLOAD_HASARGS(base, ...) \
MACROHAX_EXPAND(\
MACROHAX_DEFER(MACROHAX_CONCAT)(base, MACROHAX_HASARGS(__VA_ARGS__))\
)
#endif // IGUARD_util_macrohax_h