std-aux: add _NM_MACRO_IDENTITY(), _NM_MACRO_CALL2(), _NM_MACRO_SELECT_FIRST()

_NM_MACRO_CALL2() is needed, because we cannot call _NM_MACRO_CALL() inside
_NM_MACRO_CALL().
This commit is contained in:
Thomas Haller 2021-06-04 23:36:45 +02:00
parent 2c3abc7bcb
commit 9823ae75e5
No known key found for this signature in database
GPG key ID: 29C2366E4DFC5728

View file

@ -475,7 +475,13 @@ nm_streq0(const char *s1, const char *s2)
/*****************************************************************************/
#define _NM_MACRO_CALL(macro, ...) macro(__VA_ARGS__)
#define _NM_MACRO_IDENTITY(...) __VA_ARGS__
#define _NM_MACRO_SELECT_FIRST(...) _NM_MACRO_SELECT_FIRST_IMPL(__VA_ARGS__, throwaway)
#define _NM_MACRO_SELECT_FIRST_IMPL(first, ...) first
#define _NM_MACRO_CALL(macro, ...) macro(__VA_ARGS__)
#define _NM_MACRO_CALL2(macro, ...) macro(__VA_ARGS__)
/*****************************************************************************/