Skip to content

MISRA_NARG

Description

Count the number of arguments in a variadic macro pack, 0 through 16. Requires __VA_OPT__ (C23 / current GCC, clang, MSVC).

Usage: MISRA_NARG(a, b, c) -> 3, MISRA_NARG() -> 0.

Usage example (Cross-references)

Usage examples (Cross-references)
    /// concatenation in `MISRA_OVERLOAD__`.
    ///
    #define MISRA_OVERLOAD(name, ...)      MISRA_OVERLOAD_(name, MISRA_NARG(__VA_ARGS__), __VA_ARGS__)
    #define MISRA_OVERLOAD_(name, N, ...)  MISRA_OVERLOAD__(name, N, __VA_ARGS__)
    #define MISRA_OVERLOAD__(name, N, ...) CONCAT(name##_, N)(__VA_ARGS__)
Last updated on