COMMS
Template library intended to help with implementation of communication protocols.
Loading...
Searching...
No Matches
include
comms
details
fields_access.h
1
//
2
// Copyright 2016 - 2026 (C). Alex Robenko. All rights reserved.
3
//
4
// SPDX-License-Identifier: MPL-2.0
5
//
6
// This Source Code Form is subject to the terms of the Mozilla Public
7
// License, v. 2.0. If a copy of the MPL was not distributed with this
8
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
9
10
#pragma once
11
12
#include "comms/details/base_detection.h"
13
#include "comms/details/gen_enum.h"
14
#include "comms/details/macro_common.h"
15
16
#include <tuple>
17
18
#ifdef COMMS_MUST_DEFINE_BASE
19
#define COMMS_FIELD_VALUE_ACCESS_FUNC typename Base::ValueType& value()
20
#define COMMS_FIELD_VALUE_ACCESS_CONST_FUNC const typename Base::ValueType& value() const
21
#define COMMS_ACCESS_MEMBER_FIELD_FUNC(T_, t_, n_) \
22
typename std::tuple_element<COMMS_CONCATENATE(FieldIdx_, n_), typename Base::T_>::type& COMMS_CONCATENATE(field_, n_)()
23
#define COMMS_ACCESS_MEMBER_FIELD_CONST_FUNC(T_, t_, n_) \
24
const typename std::tuple_element<COMMS_CONCATENATE(FieldIdx_, n_), typename Base::T_>::type& COMMS_CONCATENATE(field_, n_)() const
25
#define COMMS_MSG_FIELDS_ACCESS_FUNC \
26
typename Base::AllFields& fields()
27
#define COMMS_MSG_FIELDS_ACCESS_CONST_FUNC \
28
const typename Base::AllFields& fields() const
29
30
#else
// #ifdef COMMS_MUST_DEFINE_BASE
31
#define COMMS_FIELD_VALUE_ACCESS_FUNC FUNC_AUTO_REF_RETURN(value, decltype(comms::field::toFieldBase(*this).value()))
32
#define COMMS_FIELD_VALUE_ACCESS_CONST_FUNC FUNC_AUTO_REF_RETURN_CONST(value, decltype(comms::field::toFieldBase(*this).value()))
33
#define COMMS_ACCESS_MEMBER_FIELD_FUNC(T_, t_, n_) FUNC_AUTO_REF_RETURN(COMMS_CONCATENATE(field_, n_), decltype(std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(t_)))
34
#define COMMS_ACCESS_MEMBER_FIELD_CONST_FUNC(T_, t_, n_) FUNC_AUTO_REF_RETURN_CONST(COMMS_CONCATENATE(field_, n_), decltype(std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(t_)))
35
#define COMMS_MSG_FIELDS_ACCESS_FUNC FUNC_AUTO_REF_RETURN(fields, decltype(comms::toMessageBase(*this).fields()))
36
#define COMMS_MSG_FIELDS_ACCESS_CONST_FUNC FUNC_AUTO_REF_RETURN_CONST(fields, decltype(comms::toMessageBase(*this).fields()))
37
#endif
// #ifdef COMMS_MUST_DEFINE_BASE
38
39
#define COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
40
COMMS_ACCESS_MEMBER_FIELD_FUNC(T_, t_, n_) {\
41
return std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(t_); \
42
} \
43
COMMS_ACCESS_MEMBER_FIELD_CONST_FUNC(T_, t_, n_) {\
44
return std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(t_); \
45
}
46
47
#define COMMS_FIELD_ACC_FUNC_1(T_, t_, n_) COMMS_FIELD_ACC_FUNC(T_, t_, n_)
48
#define COMMS_FIELD_ACC_FUNC_2(T_, t_, n_, ...) \
49
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
50
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_1(T_, t_, __VA_ARGS__))
51
#define COMMS_FIELD_ACC_FUNC_3(T_, t_, n_, ...) \
52
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
53
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_2(T_, t_, __VA_ARGS__))
54
#define COMMS_FIELD_ACC_FUNC_4(T_, t_, n_, ...) \
55
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
56
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_3(T_, t_, __VA_ARGS__))
57
#define COMMS_FIELD_ACC_FUNC_5(T_, t_, n_, ...) \
58
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
59
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_4(T_, t_, __VA_ARGS__))
60
#define COMMS_FIELD_ACC_FUNC_6(T_, t_, n_, ...) \
61
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
62
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_5(T_, t_, __VA_ARGS__))
63
#define COMMS_FIELD_ACC_FUNC_7(T_, t_, n_, ...) \
64
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
65
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_6(T_, t_, __VA_ARGS__))
66
#define COMMS_FIELD_ACC_FUNC_8(T_, t_, n_, ...) \
67
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
68
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_7(T_, t_, __VA_ARGS__))
69
#define COMMS_FIELD_ACC_FUNC_9(T_, t_, n_, ...) \
70
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
71
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_8(T_, t_, __VA_ARGS__))
72
#define COMMS_FIELD_ACC_FUNC_10(T_, t_, n_, ...) \
73
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
74
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_9(T_, t_, __VA_ARGS__))
75
#define COMMS_FIELD_ACC_FUNC_11(T_, t_, n_, ...) \
76
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
77
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_10(T_, t_, __VA_ARGS__))
78
#define COMMS_FIELD_ACC_FUNC_12(T_, t_, n_, ...) \
79
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
80
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_11(T_, t_, __VA_ARGS__))
81
#define COMMS_FIELD_ACC_FUNC_13(T_, t_, n_, ...) \
82
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
83
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_12(T_, t_, __VA_ARGS__))
84
#define COMMS_FIELD_ACC_FUNC_14(T_, t_, n_, ...) \
85
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
86
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_13(T_, t_, __VA_ARGS__))
87
#define COMMS_FIELD_ACC_FUNC_15(T_, t_, n_, ...) \
88
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
89
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_14(T_, t_, __VA_ARGS__))
90
#define COMMS_FIELD_ACC_FUNC_16(T_, t_, n_, ...) \
91
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
92
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_15(T_, t_, __VA_ARGS__))
93
#define COMMS_FIELD_ACC_FUNC_17(T_, t_, n_, ...) \
94
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
95
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_16(T_, t_, __VA_ARGS__))
96
#define COMMS_FIELD_ACC_FUNC_18(T_, t_, n_, ...) \
97
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
98
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_17(T_, t_, __VA_ARGS__))
99
#define COMMS_FIELD_ACC_FUNC_19(T_, t_, n_, ...) \
100
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
101
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_18(T_, t_, __VA_ARGS__))
102
#define COMMS_FIELD_ACC_FUNC_20(T_, t_, n_, ...) \
103
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
104
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_19(T_, t_, __VA_ARGS__))
105
#define COMMS_FIELD_ACC_FUNC_21(T_, t_, n_, ...) \
106
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
107
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_20(T_, t_, __VA_ARGS__))
108
#define COMMS_FIELD_ACC_FUNC_22(T_, t_, n_, ...) \
109
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
110
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_21(T_, t_, __VA_ARGS__))
111
#define COMMS_FIELD_ACC_FUNC_23(T_, t_, n_, ...) \
112
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
113
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_22(T_, t_, __VA_ARGS__))
114
#define COMMS_FIELD_ACC_FUNC_24(T_, t_, n_, ...) \
115
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
116
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_23(T_, t_, __VA_ARGS__))
117
#define COMMS_FIELD_ACC_FUNC_25(T_, t_, n_, ...) \
118
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
119
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_24(T_, t_, __VA_ARGS__))
120
#define COMMS_FIELD_ACC_FUNC_26(T_, t_, n_, ...) \
121
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
122
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_25(T_, t_, __VA_ARGS__))
123
#define COMMS_FIELD_ACC_FUNC_27(T_, t_, n_, ...) \
124
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
125
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_26(T_, t_, __VA_ARGS__))
126
#define COMMS_FIELD_ACC_FUNC_28(T_, t_, n_, ...) \
127
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
128
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_27(T_, t_, __VA_ARGS__))
129
#define COMMS_FIELD_ACC_FUNC_29(T_, t_, n_, ...) \
130
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
131
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_28(T_, t_, __VA_ARGS__))
132
#define COMMS_FIELD_ACC_FUNC_30(T_, t_, n_, ...) \
133
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
134
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_29(T_, t_, __VA_ARGS__))
135
#define COMMS_FIELD_ACC_FUNC_31(T_, t_, n_, ...) \
136
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
137
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_30(T_, t_, __VA_ARGS__))
138
#define COMMS_FIELD_ACC_FUNC_32(T_, t_, n_, ...) \
139
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
140
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_31(T_, t_, __VA_ARGS__))
141
#define COMMS_FIELD_ACC_FUNC_33(T_, t_, n_, ...) \
142
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
143
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_32(T_, t_, __VA_ARGS__))
144
#define COMMS_FIELD_ACC_FUNC_34(T_, t_, n_, ...) \
145
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
146
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_33(T_, t_, __VA_ARGS__))
147
#define COMMS_FIELD_ACC_FUNC_35(T_, t_, n_, ...) \
148
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
149
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_34(T_, t_, __VA_ARGS__))
150
#define COMMS_FIELD_ACC_FUNC_36(T_, t_, n_, ...) \
151
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
152
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_35(T_, t_, __VA_ARGS__))
153
#define COMMS_FIELD_ACC_FUNC_37(T_, t_, n_, ...) \
154
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
155
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_36(T_, t_, __VA_ARGS__))
156
#define COMMS_FIELD_ACC_FUNC_38(T_, t_, n_, ...) \
157
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
158
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_37(T_, t_, __VA_ARGS__))
159
#define COMMS_FIELD_ACC_FUNC_39(T_, t_, n_, ...) \
160
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
161
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_38(T_, t_, __VA_ARGS__))
162
#define COMMS_FIELD_ACC_FUNC_40(T_, t_, n_, ...) \
163
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
164
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_39(T_, t_, __VA_ARGS__))
165
#define COMMS_FIELD_ACC_FUNC_41(T_, t_, n_, ...) \
166
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
167
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_40(T_, t_, __VA_ARGS__))
168
#define COMMS_FIELD_ACC_FUNC_42(T_, t_, n_, ...) \
169
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
170
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_41(T_, t_, __VA_ARGS__))
171
#define COMMS_FIELD_ACC_FUNC_43(T_, t_, n_, ...) \
172
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
173
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_42(T_, t_, __VA_ARGS__))
174
#define COMMS_FIELD_ACC_FUNC_44(T_, t_, n_, ...) \
175
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
176
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_43(T_, t_, __VA_ARGS__))
177
#define COMMS_FIELD_ACC_FUNC_45(T_, t_, n_, ...) \
178
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
179
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_44(T_, t_, __VA_ARGS__))
180
#define COMMS_FIELD_ACC_FUNC_46(T_, t_, n_, ...) \
181
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
182
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_45(T_, t_, __VA_ARGS__))
183
#define COMMS_FIELD_ACC_FUNC_47(T_, t_, n_, ...) \
184
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
185
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_46(T_, t_, __VA_ARGS__))
186
#define COMMS_FIELD_ACC_FUNC_48(T_, t_, n_, ...) \
187
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
188
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_47(T_, t_, __VA_ARGS__))
189
#define COMMS_FIELD_ACC_FUNC_49(T_, t_, n_, ...) \
190
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
191
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_48(T_, t_, __VA_ARGS__))
192
#define COMMS_FIELD_ACC_FUNC_50(T_, t_, n_, ...) \
193
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
194
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__))
195
#define COMMS_FIELD_ACC_FUNC_51(T_, t_, n_, ...) \
196
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
197
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_49(T_, t_, __VA_ARGS__))
198
#define COMMS_FIELD_ACC_FUNC_52(T_, t_, n_, ...) \
199
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
200
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_51(T_, t_, __VA_ARGS__))
201
#define COMMS_FIELD_ACC_FUNC_53(T_, t_, n_, ...) \
202
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
203
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_52(T_, t_, __VA_ARGS__))
204
#define COMMS_FIELD_ACC_FUNC_54(T_, t_, n_, ...) \
205
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
206
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_53(T_, t_, __VA_ARGS__))
207
#define COMMS_FIELD_ACC_FUNC_55(T_, t_, n_, ...) \
208
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
209
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_54(T_, t_, __VA_ARGS__))
210
#define COMMS_FIELD_ACC_FUNC_56(T_, t_, n_, ...) \
211
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
212
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_55(T_, t_, __VA_ARGS__))
213
#define COMMS_FIELD_ACC_FUNC_57(T_, t_, n_, ...) \
214
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
215
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_56(T_, t_, __VA_ARGS__))
216
#define COMMS_FIELD_ACC_FUNC_58(T_, t_, n_, ...) \
217
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
218
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_57(T_, t_, __VA_ARGS__))
219
#define COMMS_FIELD_ACC_FUNC_59(T_, t_, n_, ...) \
220
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
221
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_58(T_, t_, __VA_ARGS__))
222
#define COMMS_FIELD_ACC_FUNC_60(T_, t_, n_, ...) \
223
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
224
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_59(T_, t_, __VA_ARGS__))
225
#define COMMS_FIELD_ACC_FUNC_61(T_, t_, n_, ...) \
226
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
227
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_60(T_, t_, __VA_ARGS__))
228
#define COMMS_FIELD_ACC_FUNC_62(T_, t_, n_, ...) \
229
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
230
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_61(T_, t_, __VA_ARGS__))
231
#define COMMS_FIELD_ACC_FUNC_63(T_, t_, n_, ...) \
232
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
233
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_62(T_, t_, __VA_ARGS__))
234
#define COMMS_FIELD_ACC_FUNC_64(T_, t_, n_, ...) \
235
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
236
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_63(T_, t_, __VA_ARGS__))
237
#define COMMS_FIELD_ACC_FUNC_65(T_, t_, n_, ...) \
238
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
239
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_64(T_, t_, __VA_ARGS__))
240
#define COMMS_FIELD_ACC_FUNC_66(T_, t_, n_, ...) \
241
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
242
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_65(T_, t_, __VA_ARGS__))
243
#define COMMS_FIELD_ACC_FUNC_67(T_, t_, n_, ...) \
244
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
245
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_66(T_, t_, __VA_ARGS__))
246
#define COMMS_FIELD_ACC_FUNC_68(T_, t_, n_, ...) \
247
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
248
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_67(T_, t_, __VA_ARGS__))
249
#define COMMS_FIELD_ACC_FUNC_69(T_, t_, n_, ...) \
250
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
251
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_68(T_, t_, __VA_ARGS__))
252
#define COMMS_FIELD_ACC_FUNC_70(T_, t_, n_, ...) \
253
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
254
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_69(T_, t_, __VA_ARGS__))
255
#define COMMS_FIELD_ACC_FUNC_71(T_, t_, n_, ...) \
256
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
257
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_70(T_, t_, __VA_ARGS__))
258
#define COMMS_FIELD_ACC_FUNC_72(T_, t_, n_, ...) \
259
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
260
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_71(T_, t_, __VA_ARGS__))
261
#define COMMS_FIELD_ACC_FUNC_73(T_, t_, n_, ...) \
262
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
263
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_72(T_, t_, __VA_ARGS__))
264
#define COMMS_FIELD_ACC_FUNC_74(T_, t_, n_, ...) \
265
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
266
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_73(T_, t_, __VA_ARGS__))
267
#define COMMS_FIELD_ACC_FUNC_75(T_, t_, n_, ...) \
268
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
269
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_74(T_, t_, __VA_ARGS__))
270
#define COMMS_FIELD_ACC_FUNC_76(T_, t_, n_, ...) \
271
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
272
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_75(T_, t_, __VA_ARGS__))
273
#define COMMS_FIELD_ACC_FUNC_77(T_, t_, n_, ...) \
274
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
275
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_76(T_, t_, __VA_ARGS__))
276
#define COMMS_FIELD_ACC_FUNC_78(T_, t_, n_, ...) \
277
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
278
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_77(T_, t_, __VA_ARGS__))
279
#define COMMS_FIELD_ACC_FUNC_79(T_, t_, n_, ...) \
280
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
281
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_78(T_, t_, __VA_ARGS__))
282
#define COMMS_FIELD_ACC_FUNC_80(T_, t_, n_, ...) \
283
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
284
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_79(T_, t_, __VA_ARGS__))
285
#define COMMS_FIELD_ACC_FUNC_81(T_, t_, n_, ...) \
286
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
287
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_80(T_, t_, __VA_ARGS__))
288
#define COMMS_FIELD_ACC_FUNC_82(T_, t_, n_, ...) \
289
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
290
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_81(T_, t_, __VA_ARGS__))
291
#define COMMS_FIELD_ACC_FUNC_83(T_, t_, n_, ...) \
292
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
293
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_82(T_, t_, __VA_ARGS__))
294
#define COMMS_FIELD_ACC_FUNC_84(T_, t_, n_, ...) \
295
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
296
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_83(T_, t_, __VA_ARGS__))
297
#define COMMS_FIELD_ACC_FUNC_85(T_, t_, n_, ...) \
298
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
299
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_84(T_, t_, __VA_ARGS__))
300
#define COMMS_FIELD_ACC_FUNC_86(T_, t_, n_, ...) \
301
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
302
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_85(T_, t_, __VA_ARGS__))
303
#define COMMS_FIELD_ACC_FUNC_87(T_, t_, n_, ...) \
304
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
305
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_86(T_, t_, __VA_ARGS__))
306
#define COMMS_FIELD_ACC_FUNC_88(T_, t_, n_, ...) \
307
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
308
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_87(T_, t_, __VA_ARGS__))
309
#define COMMS_FIELD_ACC_FUNC_89(T_, t_, n_, ...) \
310
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
311
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_88(T_, t_, __VA_ARGS__))
312
#define COMMS_FIELD_ACC_FUNC_90(T_, t_, n_, ...) \
313
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
314
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_89(T_, t_, __VA_ARGS__))
315
#define COMMS_FIELD_ACC_FUNC_91(T_, t_, n_, ...) \
316
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
317
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_90(T_, t_, __VA_ARGS__))
318
#define COMMS_FIELD_ACC_FUNC_92(T_, t_, n_, ...) \
319
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
320
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_91(T_, t_, __VA_ARGS__))
321
#define COMMS_FIELD_ACC_FUNC_93(T_, t_, n_, ...) \
322
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
323
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_92(T_, t_, __VA_ARGS__))
324
#define COMMS_FIELD_ACC_FUNC_94(T_, t_, n_, ...) \
325
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
326
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_93(T_, t_, __VA_ARGS__))
327
#define COMMS_FIELD_ACC_FUNC_95(T_, t_, n_, ...) \
328
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
329
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_94(T_, t_, __VA_ARGS__))
330
#define COMMS_FIELD_ACC_FUNC_96(T_, t_, n_, ...) \
331
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
332
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_95(T_, t_, __VA_ARGS__))
333
#define COMMS_FIELD_ACC_FUNC_97(T_, t_, n_, ...) \
334
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
335
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_96(T_, t_, __VA_ARGS__))
336
#define COMMS_FIELD_ACC_FUNC_98(T_, t_, n_, ...) \
337
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
338
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_97(T_, t_, __VA_ARGS__))
339
#define COMMS_FIELD_ACC_FUNC_99(T_, t_, n_, ...) \
340
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
341
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_98(T_, t_, __VA_ARGS__))
342
#define COMMS_FIELD_ACC_FUNC_100(T_, t_, n_, ...) \
343
COMMS_FIELD_ACC_FUNC(T_, t_, n_) \
344
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_99(T_, t_, __VA_ARGS__))
345
346
#define COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_ ## N(T_, t_, __VA_ARGS__))
347
#define COMMS_CHOOSE_FIELD_ACC_FUNC(N, T_, t_, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_(N, T_, t_, __VA_ARGS__))
348
#define COMMS_DO_FIELD_ACC_FUNC(T_, t_, ...) \
349
COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC(COMMS_NUM_ARGS(__VA_ARGS__), T_, t_, __VA_ARGS__))
350
351
#define COMMS_DEFINE_FIELD_ENUM(...) COMMS_EXPAND(COMMS_DEFINE_ENUM(FieldIdx, __VA_ARGS__));
352
353
// ----------------------------------------------
354
355
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
356
typename std::tuple_element<COMMS_CONCATENATE(FieldIdx_, n_), ValueType>::type& COMMS_CONCATENATE(field_, n_)() {\
357
return std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(value()); \
358
} \
359
const typename std::tuple_element<COMMS_CONCATENATE(FieldIdx_, n_), ValueType>::type& COMMS_CONCATENATE(field_, n_)() const {\
360
return std::get<COMMS_CONCATENATE(FieldIdx_, n_)>(value()); \
361
}
362
363
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_1(n_) COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_)
364
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_2(n_, ...) \
365
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
366
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_1(__VA_ARGS__))
367
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_3(n_, ...) \
368
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
369
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_2(__VA_ARGS__))
370
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_4(n_, ...) \
371
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
372
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_3(__VA_ARGS__))
373
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_5(n_, ...) \
374
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
375
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_4(__VA_ARGS__))
376
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_6(n_, ...) \
377
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
378
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_5(__VA_ARGS__))
379
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_7(n_, ...) \
380
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
381
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_6(__VA_ARGS__))
382
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_8(n_, ...) \
383
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
384
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_7(__VA_ARGS__))
385
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_9(n_, ...) \
386
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
387
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_8(__VA_ARGS__))
388
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_10(n_, ...) \
389
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
390
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_9(__VA_ARGS__))
391
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_11(n_, ...) \
392
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
393
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_10(__VA_ARGS__))
394
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_12(n_, ...) \
395
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
396
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_11(__VA_ARGS__))
397
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_13(n_, ...) \
398
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
399
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_12(__VA_ARGS__))
400
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_14(n_, ...) \
401
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
402
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_13(__VA_ARGS__))
403
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_15(n_, ...) \
404
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
405
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_14(__VA_ARGS__))
406
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_16(n_, ...) \
407
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
408
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_15(__VA_ARGS__))
409
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_17(n_, ...) \
410
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
411
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_16(__VA_ARGS__))
412
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_18(n_, ...) \
413
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
414
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_17(__VA_ARGS__))
415
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_19(n_, ...) \
416
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
417
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_18(__VA_ARGS__))
418
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_20(n_, ...) \
419
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
420
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_19(__VA_ARGS__))
421
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_21(n_, ...) \
422
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
423
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_20(__VA_ARGS__))
424
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_22(n_, ...) \
425
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
426
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_21(__VA_ARGS__))
427
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_23(n_, ...) \
428
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
429
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_22(__VA_ARGS__))
430
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_24(n_, ...) \
431
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
432
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_23(__VA_ARGS__))
433
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_25(n_, ...) \
434
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
435
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_24(__VA_ARGS__))
436
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_26(n_, ...) \
437
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
438
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_25(__VA_ARGS__))
439
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_27(n_, ...) \
440
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
441
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_26(__VA_ARGS__))
442
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_28(n_, ...) \
443
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
444
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_27(__VA_ARGS__))
445
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_29(n_, ...) \
446
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
447
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_28(__VA_ARGS__))
448
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_30(n_, ...) \
449
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
450
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_29(__VA_ARGS__))
451
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_31(n_, ...) \
452
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
453
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_30(__VA_ARGS__))
454
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_32(n_, ...) \
455
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
456
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_31(__VA_ARGS__))
457
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_33(n_, ...) \
458
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
459
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_32(__VA_ARGS__))
460
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_34(n_, ...) \
461
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
462
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_33(__VA_ARGS__))
463
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_35(n_, ...) \
464
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
465
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_34(__VA_ARGS__))
466
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_36(n_, ...) \
467
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
468
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_35(__VA_ARGS__))
469
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_37(n_, ...) \
470
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
471
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_36(__VA_ARGS__))
472
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_38(n_, ...) \
473
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
474
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_37(__VA_ARGS__))
475
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_39(n_, ...) \
476
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
477
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_38(__VA_ARGS__))
478
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_40(n_, ...) \
479
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
480
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_39(__VA_ARGS__))
481
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_41(n_, ...) \
482
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
483
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_40(__VA_ARGS__))
484
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_42(n_, ...) \
485
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
486
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_41(__VA_ARGS__))
487
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_43(n_, ...) \
488
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
489
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_42(__VA_ARGS__))
490
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_44(n_, ...) \
491
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
492
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_43(__VA_ARGS__))
493
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_45(n_, ...) \
494
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
495
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_44(__VA_ARGS__))
496
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_46(n_, ...) \
497
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
498
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_45(__VA_ARGS__))
499
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_47(n_, ...) \
500
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
501
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_46(__VA_ARGS__))
502
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(n_, ...) \
503
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
504
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_47(__VA_ARGS__))
505
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(n_, ...) \
506
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
507
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_48(__VA_ARGS__))
508
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(n_, ...) \
509
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
510
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_49(__VA_ARGS__))
511
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(n_, ...) \
512
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
513
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_50(__VA_ARGS__))
514
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(n_, ...) \
515
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
516
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_51(__VA_ARGS__))
517
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(n_, ...) \
518
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
519
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_52(__VA_ARGS__))
520
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(n_, ...) \
521
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
522
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_53(__VA_ARGS__))
523
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(n_, ...) \
524
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
525
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_54(__VA_ARGS__))
526
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(n_, ...) \
527
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
528
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_55(__VA_ARGS__))
529
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(n_, ...) \
530
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
531
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_56(__VA_ARGS__))
532
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(n_, ...) \
533
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
534
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_57(__VA_ARGS__))
535
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(n_, ...) \
536
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
537
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_58(__VA_ARGS__))
538
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(n_, ...) \
539
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
540
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_59(__VA_ARGS__))
541
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(n_, ...) \
542
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
543
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_60(__VA_ARGS__))
544
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(n_, ...) \
545
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
546
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_61(__VA_ARGS__))
547
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(n_, ...) \
548
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
549
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_62(__VA_ARGS__))
550
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(n_, ...) \
551
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
552
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_63(__VA_ARGS__))
553
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(n_, ...) \
554
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
555
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_64(__VA_ARGS__))
556
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(n_, ...) \
557
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
558
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_65(__VA_ARGS__))
559
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(n_, ...) \
560
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
561
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_66(__VA_ARGS__))
562
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(n_, ...) \
563
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
564
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_67(__VA_ARGS__))
565
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(n_, ...) \
566
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
567
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_68(__VA_ARGS__))
568
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(n_, ...) \
569
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
570
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_69(__VA_ARGS__))
571
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(n_, ...) \
572
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
573
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_70(__VA_ARGS__))
574
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(n_, ...) \
575
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
576
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_71(__VA_ARGS__))
577
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(n_, ...) \
578
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
579
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_72(__VA_ARGS__))
580
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(n_, ...) \
581
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
582
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_73(__VA_ARGS__))
583
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(n_, ...) \
584
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
585
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_74(__VA_ARGS__))
586
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(n_, ...) \
587
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
588
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_75(__VA_ARGS__))
589
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(n_, ...) \
590
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
591
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_76(__VA_ARGS__))
592
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(n_, ...) \
593
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
594
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_77(__VA_ARGS__))
595
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(n_, ...) \
596
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
597
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_78(__VA_ARGS__))
598
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(n_, ...) \
599
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
600
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_79(__VA_ARGS__))
601
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(n_, ...) \
602
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
603
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_80(__VA_ARGS__))
604
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(n_, ...) \
605
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
606
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_81(__VA_ARGS__))
607
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(n_, ...) \
608
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
609
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_82(__VA_ARGS__))
610
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(n_, ...) \
611
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
612
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_83(__VA_ARGS__))
613
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(n_, ...) \
614
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
615
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_84(__VA_ARGS__))
616
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(n_, ...) \
617
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
618
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_85(__VA_ARGS__))
619
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(n_, ...) \
620
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
621
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_86(__VA_ARGS__))
622
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(n_, ...) \
623
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
624
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_87(__VA_ARGS__))
625
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(n_, ...) \
626
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
627
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_88(__VA_ARGS__))
628
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(n_, ...) \
629
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
630
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_89(__VA_ARGS__))
631
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(n_, ...) \
632
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
633
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_90(__VA_ARGS__))
634
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(n_, ...) \
635
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
636
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_91(__VA_ARGS__))
637
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(n_, ...) \
638
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
639
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_92(__VA_ARGS__))
640
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(n_, ...) \
641
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
642
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_93(__VA_ARGS__))
643
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(n_, ...) \
644
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
645
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_94(__VA_ARGS__))
646
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(n_, ...) \
647
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
648
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_95(__VA_ARGS__))
649
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(n_, ...) \
650
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
651
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_96(__VA_ARGS__))
652
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(n_, ...) \
653
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
654
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_97(__VA_ARGS__))
655
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(n_, ...) \
656
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
657
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_98(__VA_ARGS__))
658
#define COMMS_FIELD_ACC_FUNC_NOTEMPLATE_100(n_, ...) \
659
COMMS_FIELD_ACC_FUNC_NOTEMPLATE(n_) \
660
COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_99(__VA_ARGS__))
661
662
#define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, ...) COMMS_EXPAND(COMMS_FIELD_ACC_FUNC_NOTEMPLATE_ ## N(__VA_ARGS__))
663
#define COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE(N, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE_(N, __VA_ARGS__))
664
#define COMMS_DO_FIELD_ACC_FUNC_NOTEMPLATE(...) \
665
COMMS_EXPAND(COMMS_CHOOSE_FIELD_ACC_FUNC_NOTEMPLATE(COMMS_NUM_ARGS(__VA_ARGS__), __VA_ARGS__))
666
667
// ----------------------------------------------
668
669
#define COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
670
using COMMS_CONCATENATE(P_, n_) = typename std::tuple_element<COMMS_CONCATENATE(pref_, n_), T_>::type;
671
672
#define COMMS_FIELD_TYPEDEF_1(T_, P_, pref_, n_) COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_)
673
#define COMMS_FIELD_TYPEDEF_2(T_, P_, pref_, n_, ...) \
674
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
675
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_1(T_, P_, pref_, __VA_ARGS__))
676
#define COMMS_FIELD_TYPEDEF_3(T_, P_, pref_, n_, ...) \
677
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
678
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_2(T_, P_, pref_, __VA_ARGS__))
679
#define COMMS_FIELD_TYPEDEF_4(T_, P_, pref_, n_, ...) \
680
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
681
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_3(T_, P_, pref_, __VA_ARGS__))
682
#define COMMS_FIELD_TYPEDEF_5(T_, P_, pref_, n_, ...) \
683
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
684
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_4(T_, P_, pref_, __VA_ARGS__))
685
#define COMMS_FIELD_TYPEDEF_6(T_, P_, pref_, n_, ...) \
686
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
687
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_5(T_, P_, pref_, __VA_ARGS__))
688
#define COMMS_FIELD_TYPEDEF_7(T_, P_, pref_, n_, ...) \
689
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
690
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_6(T_, P_, pref_, __VA_ARGS__))
691
#define COMMS_FIELD_TYPEDEF_8(T_, P_, pref_, n_, ...) \
692
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
693
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_7(T_, P_, pref_, __VA_ARGS__))
694
#define COMMS_FIELD_TYPEDEF_9(T_, P_, pref_, n_, ...) \
695
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
696
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_8(T_, P_, pref_, __VA_ARGS__))
697
#define COMMS_FIELD_TYPEDEF_10(T_, P_, pref_, n_, ...) \
698
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
699
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_9(T_, P_, pref_, __VA_ARGS__))
700
#define COMMS_FIELD_TYPEDEF_11(T_, P_, pref_, n_, ...) \
701
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
702
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_10(T_, P_, pref_, __VA_ARGS__))
703
#define COMMS_FIELD_TYPEDEF_12(T_, P_, pref_, n_, ...) \
704
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
705
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_11(T_, P_, pref_, __VA_ARGS__))
706
#define COMMS_FIELD_TYPEDEF_13(T_, P_, pref_, n_, ...) \
707
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
708
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_12(T_, P_, pref_, __VA_ARGS__))
709
#define COMMS_FIELD_TYPEDEF_14(T_, P_, pref_, n_, ...) \
710
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
711
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_13(T_, P_, pref_, __VA_ARGS__))
712
#define COMMS_FIELD_TYPEDEF_15(T_, P_, pref_, n_, ...) \
713
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
714
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_14(T_, P_, pref_, __VA_ARGS__))
715
#define COMMS_FIELD_TYPEDEF_16(T_, P_, pref_, n_, ...) \
716
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
717
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_15(T_, P_, pref_, __VA_ARGS__))
718
#define COMMS_FIELD_TYPEDEF_17(T_, P_, pref_, n_, ...) \
719
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
720
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_16(T_, P_, pref_, __VA_ARGS__))
721
#define COMMS_FIELD_TYPEDEF_18(T_, P_, pref_, n_, ...) \
722
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
723
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_17(T_, P_, pref_, __VA_ARGS__))
724
#define COMMS_FIELD_TYPEDEF_19(T_, P_, pref_, n_, ...) \
725
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
726
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_18(T_, P_, pref_, __VA_ARGS__))
727
#define COMMS_FIELD_TYPEDEF_20(T_, P_, pref_, n_, ...) \
728
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
729
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_19(T_, P_, pref_, __VA_ARGS__))
730
#define COMMS_FIELD_TYPEDEF_21(T_, P_, pref_, n_, ...) \
731
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
732
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_20(T_, P_, pref_, __VA_ARGS__))
733
#define COMMS_FIELD_TYPEDEF_22(T_, P_, pref_, n_, ...) \
734
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
735
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_21(T_, P_, pref_, __VA_ARGS__))
736
#define COMMS_FIELD_TYPEDEF_23(T_, P_, pref_, n_, ...) \
737
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
738
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_22(T_, P_, pref_, __VA_ARGS__))
739
#define COMMS_FIELD_TYPEDEF_24(T_, P_, pref_, n_, ...) \
740
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
741
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_23(T_, P_, pref_, __VA_ARGS__))
742
#define COMMS_FIELD_TYPEDEF_25(T_, P_, pref_, n_, ...) \
743
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
744
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_24(T_, P_, pref_, __VA_ARGS__))
745
#define COMMS_FIELD_TYPEDEF_26(T_, P_, pref_, n_, ...) \
746
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
747
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_25(T_, P_, pref_, __VA_ARGS__))
748
#define COMMS_FIELD_TYPEDEF_27(T_, P_, pref_, n_, ...) \
749
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
750
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_26(T_, P_, pref_, __VA_ARGS__))
751
#define COMMS_FIELD_TYPEDEF_28(T_, P_, pref_, n_, ...) \
752
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
753
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_27(T_, P_, pref_, __VA_ARGS__))
754
#define COMMS_FIELD_TYPEDEF_29(T_, P_, pref_, n_, ...) \
755
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
756
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_28(T_, P_, pref_, __VA_ARGS__))
757
#define COMMS_FIELD_TYPEDEF_30(T_, P_, pref_, n_, ...) \
758
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
759
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_29(T_, P_, pref_, __VA_ARGS__))
760
#define COMMS_FIELD_TYPEDEF_31(T_, P_, pref_, n_, ...) \
761
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
762
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_30(T_, P_, pref_, __VA_ARGS__))
763
#define COMMS_FIELD_TYPEDEF_32(T_, P_, pref_, n_, ...) \
764
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
765
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_31(T_, P_, pref_, __VA_ARGS__))
766
#define COMMS_FIELD_TYPEDEF_33(T_, P_, pref_, n_, ...) \
767
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
768
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_32(T_, P_, pref_, __VA_ARGS__))
769
#define COMMS_FIELD_TYPEDEF_34(T_, P_, pref_, n_, ...) \
770
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
771
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_33(T_, P_, pref_, __VA_ARGS__))
772
#define COMMS_FIELD_TYPEDEF_35(T_, P_, pref_, n_, ...) \
773
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
774
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_34(T_, P_, pref_, __VA_ARGS__))
775
#define COMMS_FIELD_TYPEDEF_36(T_, P_, pref_, n_, ...) \
776
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
777
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_35(T_, P_, pref_, __VA_ARGS__))
778
#define COMMS_FIELD_TYPEDEF_37(T_, P_, pref_, n_, ...) \
779
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
780
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_36(T_, P_, pref_, __VA_ARGS__))
781
#define COMMS_FIELD_TYPEDEF_38(T_, P_, pref_, n_, ...) \
782
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
783
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_37(T_, P_, pref_, __VA_ARGS__))
784
#define COMMS_FIELD_TYPEDEF_39(T_, P_, pref_, n_, ...) \
785
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
786
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_38(T_, P_, pref_, __VA_ARGS__))
787
#define COMMS_FIELD_TYPEDEF_40(T_, P_, pref_, n_, ...) \
788
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
789
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_39(T_, P_, pref_, __VA_ARGS__))
790
#define COMMS_FIELD_TYPEDEF_41(T_, P_, pref_, n_, ...) \
791
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
792
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_40(T_, P_, pref_, __VA_ARGS__))
793
#define COMMS_FIELD_TYPEDEF_42(T_, P_, pref_, n_, ...) \
794
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
795
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_41(T_, P_, pref_, __VA_ARGS__))
796
#define COMMS_FIELD_TYPEDEF_43(T_, P_, pref_, n_, ...) \
797
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
798
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_42(T_, P_, pref_, __VA_ARGS__))
799
#define COMMS_FIELD_TYPEDEF_44(T_, P_, pref_, n_, ...) \
800
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
801
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_43(T_, P_, pref_, __VA_ARGS__))
802
#define COMMS_FIELD_TYPEDEF_45(T_, P_, pref_, n_, ...) \
803
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
804
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_44(T_, P_, pref_, __VA_ARGS__))
805
#define COMMS_FIELD_TYPEDEF_46(T_, P_, pref_, n_, ...) \
806
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
807
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_45(T_, P_, pref_, __VA_ARGS__))
808
#define COMMS_FIELD_TYPEDEF_47(T_, P_, pref_, n_, ...) \
809
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
810
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_46(T_, P_, pref_, __VA_ARGS__))
811
#define COMMS_FIELD_TYPEDEF_48(T_, P_, pref_, n_, ...) \
812
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
813
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_47(T_, P_, pref_, __VA_ARGS__))
814
#define COMMS_FIELD_TYPEDEF_49(T_, P_, pref_, n_, ...) \
815
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
816
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_48(T_, P_, pref_, __VA_ARGS__))
817
#define COMMS_FIELD_TYPEDEF_50(T_, P_, pref_, n_, ...) \
818
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
819
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_49(T_, P_, pref_, __VA_ARGS__))
820
#define COMMS_FIELD_TYPEDEF_51(T_, P_, pref_, n_, ...) \
821
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
822
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_50(T_, P_, pref_, __VA_ARGS__))
823
#define COMMS_FIELD_TYPEDEF_52(T_, P_, pref_, n_, ...) \
824
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
825
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_51(T_, P_, pref_, __VA_ARGS__))
826
#define COMMS_FIELD_TYPEDEF_53(T_, P_, pref_, n_, ...) \
827
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
828
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_52(T_, P_, pref_, __VA_ARGS__))
829
#define COMMS_FIELD_TYPEDEF_54(T_, P_, pref_, n_, ...) \
830
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
831
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_53(T_, P_, pref_, __VA_ARGS__))
832
#define COMMS_FIELD_TYPEDEF_55(T_, P_, pref_, n_, ...) \
833
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
834
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_54(T_, P_, pref_, __VA_ARGS__))
835
#define COMMS_FIELD_TYPEDEF_56(T_, P_, pref_, n_, ...) \
836
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
837
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_55(T_, P_, pref_, __VA_ARGS__))
838
#define COMMS_FIELD_TYPEDEF_57(T_, P_, pref_, n_, ...) \
839
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
840
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_56(T_, P_, pref_, __VA_ARGS__))
841
#define COMMS_FIELD_TYPEDEF_58(T_, P_, pref_, n_, ...) \
842
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
843
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_57(T_, P_, pref_, __VA_ARGS__))
844
#define COMMS_FIELD_TYPEDEF_59(T_, P_, pref_, n_, ...) \
845
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
846
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_58(T_, P_, pref_, __VA_ARGS__))
847
#define COMMS_FIELD_TYPEDEF_60(T_, P_, pref_, n_, ...) \
848
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
849
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_59(T_, P_, pref_, __VA_ARGS__))
850
#define COMMS_FIELD_TYPEDEF_61(T_, P_, pref_, n_, ...) \
851
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
852
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_60(T_, P_, pref_, __VA_ARGS__))
853
#define COMMS_FIELD_TYPEDEF_62(T_, P_, pref_, n_, ...) \
854
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
855
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_61(T_, P_, pref_, __VA_ARGS__))
856
#define COMMS_FIELD_TYPEDEF_63(T_, P_, pref_, n_, ...) \
857
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
858
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_62(T_, P_, pref_, __VA_ARGS__))
859
#define COMMS_FIELD_TYPEDEF_64(T_, P_, pref_, n_, ...) \
860
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
861
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_63(T_, P_, pref_, __VA_ARGS__))
862
#define COMMS_FIELD_TYPEDEF_65(T_, P_, pref_, n_, ...) \
863
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
864
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_64(T_, P_, pref_, __VA_ARGS__))
865
#define COMMS_FIELD_TYPEDEF_66(T_, P_, pref_, n_, ...) \
866
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
867
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_65(T_, P_, pref_, __VA_ARGS__))
868
#define COMMS_FIELD_TYPEDEF_67(T_, P_, pref_, n_, ...) \
869
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
870
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_66(T_, P_, pref_, __VA_ARGS__))
871
#define COMMS_FIELD_TYPEDEF_68(T_, P_, pref_, n_, ...) \
872
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
873
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_67(T_, P_, pref_, __VA_ARGS__))
874
#define COMMS_FIELD_TYPEDEF_69(T_, P_, pref_, n_, ...) \
875
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
876
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_68(T_, P_, pref_, __VA_ARGS__))
877
#define COMMS_FIELD_TYPEDEF_70(T_, P_, pref_, n_, ...) \
878
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
879
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_69(T_, P_, pref_, __VA_ARGS__))
880
#define COMMS_FIELD_TYPEDEF_71(T_, P_, pref_, n_, ...) \
881
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
882
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_70(T_, P_, pref_, __VA_ARGS__))
883
#define COMMS_FIELD_TYPEDEF_72(T_, P_, pref_, n_, ...) \
884
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
885
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_71(T_, P_, pref_, __VA_ARGS__))
886
#define COMMS_FIELD_TYPEDEF_73(T_, P_, pref_, n_, ...) \
887
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
888
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_72(T_, P_, pref_, __VA_ARGS__))
889
#define COMMS_FIELD_TYPEDEF_74(T_, P_, pref_, n_, ...) \
890
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
891
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_73(T_, P_, pref_, __VA_ARGS__))
892
#define COMMS_FIELD_TYPEDEF_75(T_, P_, pref_, n_, ...) \
893
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
894
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_74(T_, P_, pref_, __VA_ARGS__))
895
#define COMMS_FIELD_TYPEDEF_76(T_, P_, pref_, n_, ...) \
896
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
897
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_75(T_, P_, pref_, __VA_ARGS__))
898
#define COMMS_FIELD_TYPEDEF_77(T_, P_, pref_, n_, ...) \
899
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
900
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_76(T_, P_, pref_, __VA_ARGS__))
901
#define COMMS_FIELD_TYPEDEF_78(T_, P_, pref_, n_, ...) \
902
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
903
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_77(T_, P_, pref_, __VA_ARGS__))
904
#define COMMS_FIELD_TYPEDEF_79(T_, P_, pref_, n_, ...) \
905
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
906
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_78(T_, P_, pref_, __VA_ARGS__))
907
#define COMMS_FIELD_TYPEDEF_80(T_, P_, pref_, n_, ...) \
908
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
909
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_79(T_, P_, pref_, __VA_ARGS__))
910
#define COMMS_FIELD_TYPEDEF_81(T_, P_, pref_, n_, ...) \
911
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
912
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_80(T_, P_, pref_, __VA_ARGS__))
913
#define COMMS_FIELD_TYPEDEF_82(T_, P_, pref_, n_, ...) \
914
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
915
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_81(T_, P_, pref_, __VA_ARGS__))
916
#define COMMS_FIELD_TYPEDEF_83(T_, P_, pref_, n_, ...) \
917
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
918
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_82(T_, P_, pref_, __VA_ARGS__))
919
#define COMMS_FIELD_TYPEDEF_84(T_, P_, pref_, n_, ...) \
920
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
921
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_83(T_, P_, pref_, __VA_ARGS__))
922
#define COMMS_FIELD_TYPEDEF_85(T_, P_, pref_, n_, ...) \
923
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
924
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_84(T_, P_, pref_, __VA_ARGS__))
925
#define COMMS_FIELD_TYPEDEF_86(T_, P_, pref_, n_, ...) \
926
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
927
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_85(T_, P_, pref_, __VA_ARGS__))
928
#define COMMS_FIELD_TYPEDEF_87(T_, P_, pref_, n_, ...) \
929
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
930
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_86(T_, P_, pref_, __VA_ARGS__))
931
#define COMMS_FIELD_TYPEDEF_88(T_, P_, pref_, n_, ...) \
932
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
933
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_87(T_, P_, pref_, __VA_ARGS__))
934
#define COMMS_FIELD_TYPEDEF_89(T_, P_, pref_, n_, ...) \
935
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
936
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_88(T_, P_, pref_, __VA_ARGS__))
937
#define COMMS_FIELD_TYPEDEF_90(T_, P_, pref_, n_, ...) \
938
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
939
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_89(T_, P_, pref_, __VA_ARGS__))
940
#define COMMS_FIELD_TYPEDEF_91(T_, P_, pref_, n_, ...) \
941
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
942
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_90(T_, P_, pref_, __VA_ARGS__))
943
#define COMMS_FIELD_TYPEDEF_92(T_, P_, pref_, n_, ...) \
944
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
945
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_91(T_, P_, pref_, __VA_ARGS__))
946
#define COMMS_FIELD_TYPEDEF_93(T_, P_, pref_, n_, ...) \
947
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
948
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_92(T_, P_, pref_, __VA_ARGS__))
949
#define COMMS_FIELD_TYPEDEF_94(T_, P_, pref_, n_, ...) \
950
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
951
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_93(T_, P_, pref_, __VA_ARGS__))
952
#define COMMS_FIELD_TYPEDEF_95(T_, P_, pref_, n_, ...) \
953
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
954
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_94(T_, P_, pref_, __VA_ARGS__))
955
#define COMMS_FIELD_TYPEDEF_96(T_, P_, pref_, n_, ...) \
956
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
957
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_95(T_, P_, pref_, __VA_ARGS__))
958
#define COMMS_FIELD_TYPEDEF_97(T_, P_, pref_, n_, ...) \
959
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
960
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_96(T_, P_, pref_, __VA_ARGS__))
961
#define COMMS_FIELD_TYPEDEF_98(T_, P_, pref_, n_, ...) \
962
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
963
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_97(T_, P_, pref_, __VA_ARGS__))
964
#define COMMS_FIELD_TYPEDEF_99(T_, P_, pref_, n_, ...) \
965
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
966
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_98(T_, P_, pref_, __VA_ARGS__))
967
#define COMMS_FIELD_TYPEDEF_100(T_, P_, pref_, n_, ...) \
968
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
969
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_99(T_, P_, pref_, __VA_ARGS__))
970
#define COMMS_FIELD_TYPEDEF_101(T_, P_, pref_, n_, ...) \
971
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
972
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_100(T_, P_, pref_, __VA_ARGS__))
973
#define COMMS_FIELD_TYPEDEF_102(T_, P_, pref_, n_, ...) \
974
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
975
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_101(T_, P_, pref_, __VA_ARGS__))
976
#define COMMS_FIELD_TYPEDEF_103(T_, P_, pref_, n_, ...) \
977
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
978
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_102(T_, P_, pref_, __VA_ARGS__))
979
#define COMMS_FIELD_TYPEDEF_104(T_, P_, pref_, n_, ...) \
980
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
981
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_103(T_, P_, pref_, __VA_ARGS__))
982
#define COMMS_FIELD_TYPEDEF_105(T_, P_, pref_, n_, ...) \
983
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
984
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_104(T_, P_, pref_, __VA_ARGS__))
985
#define COMMS_FIELD_TYPEDEF_106(T_, P_, pref_, n_, ...) \
986
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
987
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_105(T_, P_, pref_, __VA_ARGS__))
988
#define COMMS_FIELD_TYPEDEF_107(T_, P_, pref_, n_, ...) \
989
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
990
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_106(T_, P_, pref_, __VA_ARGS__))
991
#define COMMS_FIELD_TYPEDEF_108(T_, P_, pref_, n_, ...) \
992
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
993
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_107(T_, P_, pref_, __VA_ARGS__))
994
#define COMMS_FIELD_TYPEDEF_109(T_, P_, pref_, n_, ...) \
995
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
996
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_108(T_, P_, pref_, __VA_ARGS__))
997
#define COMMS_FIELD_TYPEDEF_110(T_, P_, pref_, n_, ...) \
998
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
999
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_109(T_, P_, pref_, __VA_ARGS__))
1000
#define COMMS_FIELD_TYPEDEF_111(T_, P_, pref_, n_, ...) \
1001
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1002
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_110(T_, P_, pref_, __VA_ARGS__))
1003
#define COMMS_FIELD_TYPEDEF_112(T_, P_, pref_, n_, ...) \
1004
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1005
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_111(T_, P_, pref_, __VA_ARGS__))
1006
#define COMMS_FIELD_TYPEDEF_113(T_, P_, pref_, n_, ...) \
1007
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1008
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_112(T_, P_, pref_, __VA_ARGS__))
1009
#define COMMS_FIELD_TYPEDEF_114(T_, P_, pref_, n_, ...) \
1010
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1011
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_113(T_, P_, pref_, __VA_ARGS__))
1012
#define COMMS_FIELD_TYPEDEF_115(T_, P_, pref_, n_, ...) \
1013
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1014
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_114(T_, P_, pref_, __VA_ARGS__))
1015
#define COMMS_FIELD_TYPEDEF_116(T_, P_, pref_, n_, ...) \
1016
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1017
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_115(T_, P_, pref_, __VA_ARGS__))
1018
#define COMMS_FIELD_TYPEDEF_117(T_, P_, pref_, n_, ...) \
1019
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1020
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_116(T_, P_, pref_, __VA_ARGS__))
1021
#define COMMS_FIELD_TYPEDEF_118(T_, P_, pref_, n_, ...) \
1022
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1023
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_117(T_, P_, pref_, __VA_ARGS__))
1024
#define COMMS_FIELD_TYPEDEF_119(T_, P_, pref_, n_, ...) \
1025
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1026
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_118(T_, P_, pref_, __VA_ARGS__))
1027
#define COMMS_FIELD_TYPEDEF_120(T_, P_, pref_, n_, ...) \
1028
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1029
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_119(T_, P_, pref_, __VA_ARGS__))
1030
#define COMMS_FIELD_TYPEDEF_121(T_, P_, pref_, n_, ...) \
1031
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1032
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_120(T_, P_, pref_, __VA_ARGS__))
1033
#define COMMS_FIELD_TYPEDEF_122(T_, P_, pref_, n_, ...) \
1034
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1035
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_121(T_, P_, pref_, __VA_ARGS__))
1036
#define COMMS_FIELD_TYPEDEF_123(T_, P_, pref_, n_, ...) \
1037
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1038
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_122(T_, P_, pref_, __VA_ARGS__))
1039
#define COMMS_FIELD_TYPEDEF_124(T_, P_, pref_, n_, ...) \
1040
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1041
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_123(T_, P_, pref_, __VA_ARGS__))
1042
#define COMMS_FIELD_TYPEDEF_125(T_, P_, pref_, n_, ...) \
1043
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1044
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_124(T_, P_, pref_, __VA_ARGS__))
1045
#define COMMS_FIELD_TYPEDEF_126(T_, P_, pref_, n_, ...) \
1046
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1047
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_125(T_, P_, pref_, __VA_ARGS__))
1048
#define COMMS_FIELD_TYPEDEF_127(T_, P_, pref_, n_, ...) \
1049
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1050
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_126(T_, P_, pref_, __VA_ARGS__))
1051
#define COMMS_FIELD_TYPEDEF_128(T_, P_, pref_, n_, ...) \
1052
COMMS_FIELD_TYPEDEF(T_, P_, pref_, n_) \
1053
COMMS_EXPAND(COMMS_FIELD_TYPEDEF_127(T_, P_, pref_, __VA_ARGS__))
1054
1055
#define COMMS_CHOOSE_FIELD_TYPEDEF_(N, T_, P_, pref_, ...) COMMS_EXPAND(COMMS_FIELD_TYPEDEF_ ## N(T_, P_, pref_, __VA_ARGS__))
1056
#define COMMS_CHOOSE_FIELD_TYPEDEF(N, T_, P_, pref_, ...) COMMS_EXPAND(COMMS_CHOOSE_FIELD_TYPEDEF_(N, T_, P_, pref_, __VA_ARGS__))
1057
#define COMMS_DO_FIELD_TYPEDEF(T_, P_, pref_, ...) \
1058
COMMS_EXPAND(COMMS_CHOOSE_FIELD_TYPEDEF(COMMS_NUM_ARGS(__VA_ARGS__), T_, P_, pref_, __VA_ARGS__))
1059
Generated by
1.9.8