Go to the documentation of this file.
30#ifndef __VSF_ESPIDF_ESP_MACROS_H__
31#define __VSF_ESPIDF_ESP_MACROS_H__
44#if defined(__cplusplus) && (__cplusplus > 201703L)
45# define _ESP_CHOOSE_VA_ARG_INN_IMPL(...) __VA_OPT__(0)
46# define _ESP_CHOOSE_VA_ARG_INN(one, MACRO1, MACRO2, ...) MACRO1
47# define CHOOSE_MACRO_VA_ARG(MACRO_WITH_ARGS, MACRO_WITH_NO_ARGS, ...) \
48 _ESP_CHOOSE_VA_ARG_INN(_ESP_CHOOSE_VA_ARG_INN_IMPL(__VA_ARGS__) \
49 __VA_OPT__(,) MACRO_WITH_ARGS, MACRO_WITH_NO_ARGS, 0)
51# define _ESP_CHOOSE_VA_ARG_INN(one, two, MACRO1, MACRO2, ...) MACRO1
52# define CHOOSE_MACRO_VA_ARG(MACRO_WITH_ARGS, MACRO_WITH_NO_ARGS, ...) \
53 _ESP_CHOOSE_VA_ARG_INN(0, ##__VA_ARGS__, \
54 MACRO_WITH_ARGS, MACRO_WITH_NO_ARGS, 0)
61# define ESP_VA_NARG(...) _ESP_NARG(_0, ##__VA_ARGS__, _ESP_RSEQ_N())
63# define _ESP_NARG(...) _ESP_GET_NTH_ARG(__VA_ARGS__)
64# define _ESP_GET_NTH_ARG( \
65 _01,_02,_03,_04,_05,_06,_07,_08,_09,_10, \
66 _11,_12,_13,_14,_15,_16,N,...) N
67# define _ESP_RSEQ_N() \
69 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
76# define ESP_UNUSED(x) ((void)(x))
82#define ESP_INFINITE_LOOP() \
84 ESP_COMPILER_DIAGNOSTIC_PUSH_IGNORE("-Wanalyzer-infinite-loop") \
86 ESP_COMPILER_DIAGNOSTIC_POP("-Wanalyzer-infinite-loop") \