CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
args.h
Go to the documentation of this file.
1
6
7#pragma once
8
9// argument counting
10
11#define _get_nth_arg_50(_1, \
12 _2, \
13 _3, \
14 _4, \
15 _5, \
16 _6, \
17 _7, \
18 _8, \
19 _9, \
20 _10, \
21 _11, \
22 _12, \
23 _13, \
24 _14, \
25 _15, \
26 _16, \
27 _17, \
28 _18, \
29 _19, \
30 _20, \
31 _21, \
32 _22, \
33 _23, \
34 _24, \
35 _25, \
36 _26, \
37 _27, \
38 _28, \
39 _29, \
40 _30, \
41 _31, \
42 _32, \
43 _33, \
44 _34, \
45 _35, \
46 _36, \
47 _37, \
48 _38, \
49 _39, \
50 _40, \
51 _41, \
52 _42, \
53 _43, \
54 _44, \
55 _45, \
56 _46, \
57 _47, \
58 _48, \
59 _49, \
60 _50, \
61 N, \
62 ...) \
63 N
64// extra indirection macro to workaround MSVC brokenness
65#define __get_nth_arg_50(args) _get_nth_arg_50 args
66
81#define count_macro_args(...) \
82 __get_nth_arg_50((__VA_ARGS__, \
83 50, \
84 49, \
85 48, \
86 47, \
87 46, \
88 45, \
89 44, \
90 43, \
91 42, \
92 41, \
93 40, \
94 39, \
95 38, \
96 37, \
97 36, \
98 35, \
99 34, \
100 33, \
101 32, \
102 31, \
103 30, \
104 29, \
105 28, \
106 27, \
107 26, \
108 25, \
109 24, \
110 23, \
111 22, \
112 21, \
113 20, \
114 19, \
115 18, \
116 17, \
117 16, \
118 15, \
119 14, \
120 13, \
121 12, \
122 11, \
123 10, \
124 9, \
125 8, \
126 7, \
127 6, \
128 5, \
129 4, \
130 3, \
131 2, \
132 1))
133