ArcdpsExtension
 
Loading...
Searching...
No Matches
map.h File Reference

Go to the source code of this file.

Macros

#define EVAL0(...)   __VA_ARGS__
 
#define EVAL1(...)   EVAL0(EVAL0(EVAL0(__VA_ARGS__)))
 
#define EVAL2(...)   EVAL1(EVAL1(EVAL1(__VA_ARGS__)))
 
#define EVAL3(...)   EVAL2(EVAL2(EVAL2(__VA_ARGS__)))
 
#define EVAL4(...)   EVAL3(EVAL3(EVAL3(__VA_ARGS__)))
 
#define EVAL5(...)   EVAL4(EVAL4(EVAL4(__VA_ARGS__)))
 
#define EVAL(...)   EVAL5(__VA_ARGS__)
 
#define MAP_END(...)
 
#define MAP_OUT
 
#define EMPTY()
 
#define DEFER(id)   id EMPTY()
 
#define MAP_GET_END2()   0, MAP_END
 
#define MAP_GET_END1(...)   MAP_GET_END2
 
#define MAP_GET_END(...)   MAP_GET_END1
 
#define MAP_NEXT0(test, next, ...)   next MAP_OUT
 
#define MAP_NEXT1(test, next)   DEFER(MAP_NEXT0)(test, next, 0)
 
#define MAP_NEXT(test, next)   MAP_NEXT1(MAP_GET_END test, next)
 
#define MAP_INC(X)   MAP_INC_##X
 
#define MAP0(f, x, peek, ...)   f(x) DEFER(MAP_NEXT(peek, MAP1))(f, peek, __VA_ARGS__)
 
#define MAP1(f, x, peek, ...)   f(x) DEFER(MAP_NEXT(peek, MAP0))(f, peek, __VA_ARGS__)
 
#define MAP02(f, x, y, peek, ...)   f(x, y) DEFER(MAP_NEXT(peek, MAP12))(f, peek, __VA_ARGS__)
 
#define MAP12(f, x, y, peek, ...)   f(x, y) DEFER(MAP_NEXT(peek, MAP02))(f, peek, __VA_ARGS__)
 
#define MAP0_UD(f, userdata, x, peek, ...)   f(x, userdata) DEFER(MAP_NEXT(peek, MAP1_UD))(f, userdata, peek, __VA_ARGS__)
 
#define MAP1_UD(f, userdata, x, peek, ...)   f(x, userdata) DEFER(MAP_NEXT(peek, MAP0_UD))(f, userdata, peek, __VA_ARGS__)
 
#define MAP0_UD2(f, userdata, x, y, peek, ...)   f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP1_UD2))(f, userdata, peek, __VA_ARGS__)
 
#define MAP1_UD2(f, userdata, x, y, peek, ...)   f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP0_UD2))(f, userdata, peek, __VA_ARGS__)
 
#define MAP0_UD_I(f, userdata, index, x, peek, ...)   f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP1_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)
 
#define MAP1_UD_I(f, userdata, index, x, peek, ...)   f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)
 
#define MAP_LIST0(f, x, peek, ...)   , f(x) DEFER(MAP_NEXT(peek, MAP_LIST1))(f, peek, __VA_ARGS__)
 
#define MAP_LIST1(f, x, peek, ...)   , f(x) DEFER(MAP_NEXT(peek, MAP_LIST0))(f, peek, __VA_ARGS__)
 
#define MAP_LIST2(f, x, peek, ...)   f(x) DEFER(MAP_NEXT(peek, MAP_LIST1))(f, peek, __VA_ARGS__)
 
#define MAP_LIST0_UD(f, userdata, x, peek, ...)   , f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST1_UD(f, userdata, x, peek, ...)   , f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST0_UD))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST2_UD(f, userdata, x, peek, ...)   f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST0_UD2(f, userdata, x, y, peek, ...)   , f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD2))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST1_UD2(f, userdata, x, y, peek, ...)   , f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST0_UD2))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST2_UD2(f, userdata, x, y, peek, ...)   f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD2))(f, userdata, peek, __VA_ARGS__)
 
#define MAP_LIST0_UD_I(f, userdata, index, x, peek, ...)   , f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST1_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)
 
#define MAP_LIST1_UD_I(f, userdata, index, x, peek, ...)   , f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)
 
#define MAP_LIST2_UD_I(f, userdata, index, x, peek, ...)   f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)
 
#define MAP(f, ...)   EVAL(MAP1(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP2(f, ...)   EVAL(MAP12(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_LIST(f, ...)   EVAL(MAP_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_UD(f, userdata, ...)   EVAL(MAP1_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_UD2(f, userdata, ...)   EVAL(MAP1_UD2(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_LIST_UD(f, userdata, ...)   EVAL(MAP_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_LIST_UD2(f, userdata, ...)   EVAL(MAP_LIST2_UD2(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_UD_I(f, userdata, ...)   EVAL(MAP1_UD_I(f, userdata, 0, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_LIST_UD_I(f, userdata, ...)   EVAL(MAP_LIST2_UD_I(f, userdata, 0, __VA_ARGS__, ()()(), ()()(), ()()(), 0))
 
#define MAP_INC_0   1
 
#define MAP_INC_1   2
 
#define MAP_INC_2   3
 
#define MAP_INC_3   4
 
#define MAP_INC_4   5
 
#define MAP_INC_5   6
 
#define MAP_INC_6   7
 
#define MAP_INC_7   8
 
#define MAP_INC_8   9
 
#define MAP_INC_9   10
 
#define MAP_INC_10   11
 
#define MAP_INC_11   12
 
#define MAP_INC_12   13
 
#define MAP_INC_13   14
 
#define MAP_INC_14   15
 
#define MAP_INC_15   16
 
#define MAP_INC_16   17
 
#define MAP_INC_17   18
 
#define MAP_INC_18   19
 
#define MAP_INC_19   20
 
#define MAP_INC_20   21
 
#define MAP_INC_21   22
 
#define MAP_INC_22   23
 
#define MAP_INC_23   24
 
#define MAP_INC_24   25
 
#define MAP_INC_25   26
 
#define MAP_INC_26   27
 
#define MAP_INC_27   28
 
#define MAP_INC_28   29
 
#define MAP_INC_29   30
 
#define MAP_INC_30   31
 
#define MAP_INC_31   32
 
#define MAP_INC_32   33
 
#define MAP_INC_33   34
 
#define MAP_INC_34   35
 
#define MAP_INC_35   36
 
#define MAP_INC_36   37
 
#define MAP_INC_37   38
 
#define MAP_INC_38   39
 
#define MAP_INC_39   40
 
#define MAP_INC_40   41
 
#define MAP_INC_41   42
 
#define MAP_INC_42   43
 
#define MAP_INC_43   44
 
#define MAP_INC_44   45
 
#define MAP_INC_45   46
 
#define MAP_INC_46   47
 
#define MAP_INC_47   48
 
#define MAP_INC_48   49
 
#define MAP_INC_49   50
 
#define MAP_INC_50   51
 
#define MAP_INC_51   52
 
#define MAP_INC_52   53
 
#define MAP_INC_53   54
 
#define MAP_INC_54   55
 
#define MAP_INC_55   56
 
#define MAP_INC_56   57
 
#define MAP_INC_57   58
 
#define MAP_INC_58   59
 
#define MAP_INC_59   60
 
#define MAP_INC_60   61
 
#define MAP_INC_61   62
 
#define MAP_INC_62   63
 
#define MAP_INC_63   64
 
#define MAP_INC_64   65
 
#define MAP_INC_65   66
 
#define MAP_INC_66   67
 
#define MAP_INC_67   68
 
#define MAP_INC_68   69
 
#define MAP_INC_69   70
 
#define MAP_INC_70   71
 
#define MAP_INC_71   72
 
#define MAP_INC_72   73
 
#define MAP_INC_73   74
 
#define MAP_INC_74   75
 
#define MAP_INC_75   76
 
#define MAP_INC_76   77
 
#define MAP_INC_77   78
 
#define MAP_INC_78   79
 
#define MAP_INC_79   80
 
#define MAP_INC_80   81
 
#define MAP_INC_81   82
 
#define MAP_INC_82   83
 
#define MAP_INC_83   84
 
#define MAP_INC_84   85
 
#define MAP_INC_85   86
 
#define MAP_INC_86   87
 
#define MAP_INC_87   88
 
#define MAP_INC_88   89
 
#define MAP_INC_89   90
 
#define MAP_INC_90   91
 
#define MAP_INC_91   92
 
#define MAP_INC_92   93
 
#define MAP_INC_93   94
 
#define MAP_INC_94   95
 
#define MAP_INC_95   96
 
#define MAP_INC_96   97
 
#define MAP_INC_97   98
 
#define MAP_INC_98   99
 
#define MAP_INC_99   100
 
#define MAP_INC_100   101
 
#define MAP_INC_101   102
 
#define MAP_INC_102   103
 
#define MAP_INC_103   104
 
#define MAP_INC_104   105
 
#define MAP_INC_105   106
 
#define MAP_INC_106   107
 
#define MAP_INC_107   108
 
#define MAP_INC_108   109
 
#define MAP_INC_109   110
 
#define MAP_INC_110   111
 
#define MAP_INC_111   112
 
#define MAP_INC_112   113
 
#define MAP_INC_113   114
 
#define MAP_INC_114   115
 
#define MAP_INC_115   116
 
#define MAP_INC_116   117
 
#define MAP_INC_117   118
 
#define MAP_INC_118   119
 
#define MAP_INC_119   120
 
#define MAP_INC_120   121
 
#define MAP_INC_121   122
 
#define MAP_INC_122   123
 
#define MAP_INC_123   124
 
#define MAP_INC_124   125
 
#define MAP_INC_125   126
 
#define MAP_INC_126   127
 
#define MAP_INC_127   128
 
#define MAP_INC_128   129
 
#define MAP_INC_129   130
 
#define MAP_INC_130   131
 
#define MAP_INC_131   132
 
#define MAP_INC_132   133
 
#define MAP_INC_133   134
 
#define MAP_INC_134   135
 
#define MAP_INC_135   136
 
#define MAP_INC_136   137
 
#define MAP_INC_137   138
 
#define MAP_INC_138   139
 
#define MAP_INC_139   140
 
#define MAP_INC_140   141
 
#define MAP_INC_141   142
 
#define MAP_INC_142   143
 
#define MAP_INC_143   144
 
#define MAP_INC_144   145
 
#define MAP_INC_145   146
 
#define MAP_INC_146   147
 
#define MAP_INC_147   148
 
#define MAP_INC_148   149
 
#define MAP_INC_149   150
 
#define MAP_INC_150   151
 
#define MAP_INC_151   152
 
#define MAP_INC_152   153
 
#define MAP_INC_153   154
 
#define MAP_INC_154   155
 
#define MAP_INC_155   156
 
#define MAP_INC_156   157
 
#define MAP_INC_157   158
 
#define MAP_INC_158   159
 
#define MAP_INC_159   160
 
#define MAP_INC_160   161
 
#define MAP_INC_161   162
 
#define MAP_INC_162   163
 
#define MAP_INC_163   164
 
#define MAP_INC_164   165
 
#define MAP_INC_165   166
 
#define MAP_INC_166   167
 
#define MAP_INC_167   168
 
#define MAP_INC_168   169
 
#define MAP_INC_169   170
 
#define MAP_INC_170   171
 
#define MAP_INC_171   172
 
#define MAP_INC_172   173
 
#define MAP_INC_173   174
 
#define MAP_INC_174   175
 
#define MAP_INC_175   176
 
#define MAP_INC_176   177
 
#define MAP_INC_177   178
 
#define MAP_INC_178   179
 
#define MAP_INC_179   180
 
#define MAP_INC_180   181
 
#define MAP_INC_181   182
 
#define MAP_INC_182   183
 
#define MAP_INC_183   184
 
#define MAP_INC_184   185
 
#define MAP_INC_185   186
 
#define MAP_INC_186   187
 
#define MAP_INC_187   188
 
#define MAP_INC_188   189
 
#define MAP_INC_189   190
 
#define MAP_INC_190   191
 
#define MAP_INC_191   192
 
#define MAP_INC_192   193
 
#define MAP_INC_193   194
 
#define MAP_INC_194   195
 
#define MAP_INC_195   196
 
#define MAP_INC_196   197
 
#define MAP_INC_197   198
 
#define MAP_INC_198   199
 
#define MAP_INC_199   200
 
#define MAP_INC_200   201
 
#define MAP_INC_201   202
 
#define MAP_INC_202   203
 
#define MAP_INC_203   204
 
#define MAP_INC_204   205
 
#define MAP_INC_205   206
 
#define MAP_INC_206   207
 
#define MAP_INC_207   208
 
#define MAP_INC_208   209
 
#define MAP_INC_209   210
 
#define MAP_INC_210   211
 
#define MAP_INC_211   212
 
#define MAP_INC_212   213
 
#define MAP_INC_213   214
 
#define MAP_INC_214   215
 
#define MAP_INC_215   216
 
#define MAP_INC_216   217
 
#define MAP_INC_217   218
 
#define MAP_INC_218   219
 
#define MAP_INC_219   220
 
#define MAP_INC_220   221
 
#define MAP_INC_221   222
 
#define MAP_INC_222   223
 
#define MAP_INC_223   224
 
#define MAP_INC_224   225
 
#define MAP_INC_225   226
 
#define MAP_INC_226   227
 
#define MAP_INC_227   228
 
#define MAP_INC_228   229
 
#define MAP_INC_229   230
 
#define MAP_INC_230   231
 
#define MAP_INC_231   232
 
#define MAP_INC_232   233
 
#define MAP_INC_233   234
 
#define MAP_INC_234   235
 
#define MAP_INC_235   236
 
#define MAP_INC_236   237
 
#define MAP_INC_237   238
 
#define MAP_INC_238   239
 
#define MAP_INC_239   240
 
#define MAP_INC_240   241
 
#define MAP_INC_241   242
 
#define MAP_INC_242   243
 
#define MAP_INC_243   244
 
#define MAP_INC_244   245
 
#define MAP_INC_245   246
 
#define MAP_INC_246   247
 
#define MAP_INC_247   248
 
#define MAP_INC_248   249
 
#define MAP_INC_249   250
 
#define MAP_INC_250   251
 
#define MAP_INC_251   252
 
#define MAP_INC_252   253
 
#define MAP_INC_253   254
 
#define MAP_INC_254   255
 
#define MAP_INC_255   256
 
#define MAP_INC_256   257
 
#define MAP_INC_257   258
 
#define MAP_INC_258   259
 
#define MAP_INC_259   260
 
#define MAP_INC_260   261
 
#define MAP_INC_261   262
 
#define MAP_INC_262   263
 
#define MAP_INC_263   264
 
#define MAP_INC_264   265
 
#define MAP_INC_265   266
 
#define MAP_INC_266   267
 
#define MAP_INC_267   268
 
#define MAP_INC_268   269
 
#define MAP_INC_269   270
 
#define MAP_INC_270   271
 
#define MAP_INC_271   272
 
#define MAP_INC_272   273
 
#define MAP_INC_273   274
 
#define MAP_INC_274   275
 
#define MAP_INC_275   276
 
#define MAP_INC_276   277
 
#define MAP_INC_277   278
 
#define MAP_INC_278   279
 
#define MAP_INC_279   280
 
#define MAP_INC_280   281
 
#define MAP_INC_281   282
 
#define MAP_INC_282   283
 
#define MAP_INC_283   284
 
#define MAP_INC_284   285
 
#define MAP_INC_285   286
 
#define MAP_INC_286   287
 
#define MAP_INC_287   288
 
#define MAP_INC_288   289
 
#define MAP_INC_289   290
 
#define MAP_INC_290   291
 
#define MAP_INC_291   292
 
#define MAP_INC_292   293
 
#define MAP_INC_293   294
 
#define MAP_INC_294   295
 
#define MAP_INC_295   296
 
#define MAP_INC_296   297
 
#define MAP_INC_297   298
 
#define MAP_INC_298   299
 
#define MAP_INC_299   300
 
#define MAP_INC_300   301
 
#define MAP_INC_301   302
 
#define MAP_INC_302   303
 
#define MAP_INC_303   304
 
#define MAP_INC_304   305
 
#define MAP_INC_305   306
 
#define MAP_INC_306   307
 
#define MAP_INC_307   308
 
#define MAP_INC_308   309
 
#define MAP_INC_309   310
 
#define MAP_INC_310   311
 
#define MAP_INC_311   312
 
#define MAP_INC_312   313
 
#define MAP_INC_313   314
 
#define MAP_INC_314   315
 
#define MAP_INC_315   316
 
#define MAP_INC_316   317
 
#define MAP_INC_317   318
 
#define MAP_INC_318   319
 
#define MAP_INC_319   320
 
#define MAP_INC_320   321
 
#define MAP_INC_321   322
 
#define MAP_INC_322   323
 
#define MAP_INC_323   324
 
#define MAP_INC_324   325
 
#define MAP_INC_325   326
 
#define MAP_INC_326   327
 
#define MAP_INC_327   328
 
#define MAP_INC_328   329
 
#define MAP_INC_329   330
 
#define MAP_INC_330   331
 
#define MAP_INC_331   332
 
#define MAP_INC_332   333
 
#define MAP_INC_333   334
 
#define MAP_INC_334   335
 
#define MAP_INC_335   336
 
#define MAP_INC_336   337
 
#define MAP_INC_337   338
 
#define MAP_INC_338   339
 
#define MAP_INC_339   340
 
#define MAP_INC_340   341
 
#define MAP_INC_341   342
 
#define MAP_INC_342   343
 
#define MAP_INC_343   344
 
#define MAP_INC_344   345
 
#define MAP_INC_345   346
 
#define MAP_INC_346   347
 
#define MAP_INC_347   348
 
#define MAP_INC_348   349
 
#define MAP_INC_349   350
 
#define MAP_INC_350   351
 
#define MAP_INC_351   352
 
#define MAP_INC_352   353
 
#define MAP_INC_353   354
 
#define MAP_INC_354   355
 
#define MAP_INC_355   356
 
#define MAP_INC_356   357
 
#define MAP_INC_357   358
 
#define MAP_INC_358   359
 
#define MAP_INC_359   360
 
#define MAP_INC_360   361
 
#define MAP_INC_361   362
 
#define MAP_INC_362   363
 
#define MAP_INC_363   364
 
#define MAP_INC_364   365
 
#define MAP_INC_365   366
 

Macro Definition Documentation

◆ DEFER

#define DEFER (   id)    id EMPTY()

◆ EMPTY

#define EMPTY ( )

◆ EVAL

#define EVAL (   ...)    EVAL5(__VA_ARGS__)

◆ EVAL0

#define EVAL0 (   ...)    __VA_ARGS__

◆ EVAL1

#define EVAL1 (   ...)    EVAL0(EVAL0(EVAL0(__VA_ARGS__)))

◆ EVAL2

#define EVAL2 (   ...)    EVAL1(EVAL1(EVAL1(__VA_ARGS__)))

◆ EVAL3

#define EVAL3 (   ...)    EVAL2(EVAL2(EVAL2(__VA_ARGS__)))

◆ EVAL4

#define EVAL4 (   ...)    EVAL3(EVAL3(EVAL3(__VA_ARGS__)))

◆ EVAL5

#define EVAL5 (   ...)    EVAL4(EVAL4(EVAL4(__VA_ARGS__)))

◆ MAP

#define MAP (   f,
  ... 
)    EVAL(MAP1(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters.

◆ MAP0

#define MAP0 (   f,
  x,
  peek,
  ... 
)    f(x) DEFER(MAP_NEXT(peek, MAP1))(f, peek, __VA_ARGS__)

◆ MAP02

#define MAP02 (   f,
  x,
  y,
  peek,
  ... 
)    f(x, y) DEFER(MAP_NEXT(peek, MAP12))(f, peek, __VA_ARGS__)

◆ MAP0_UD

#define MAP0_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    f(x, userdata) DEFER(MAP_NEXT(peek, MAP1_UD))(f, userdata, peek, __VA_ARGS__)

◆ MAP0_UD2

#define MAP0_UD2 (   f,
  userdata,
  x,
  y,
  peek,
  ... 
)    f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP1_UD2))(f, userdata, peek, __VA_ARGS__)

◆ MAP0_UD_I

#define MAP0_UD_I (   f,
  userdata,
  index,
  x,
  peek,
  ... 
)    f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP1_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)

◆ MAP1

#define MAP1 (   f,
  x,
  peek,
  ... 
)    f(x) DEFER(MAP_NEXT(peek, MAP0))(f, peek, __VA_ARGS__)

◆ MAP12

#define MAP12 (   f,
  x,
  y,
  peek,
  ... 
)    f(x, y) DEFER(MAP_NEXT(peek, MAP02))(f, peek, __VA_ARGS__)

◆ MAP1_UD

#define MAP1_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    f(x, userdata) DEFER(MAP_NEXT(peek, MAP0_UD))(f, userdata, peek, __VA_ARGS__)

◆ MAP1_UD2

#define MAP1_UD2 (   f,
  userdata,
  x,
  y,
  peek,
  ... 
)    f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP0_UD2))(f, userdata, peek, __VA_ARGS__)

◆ MAP1_UD_I

#define MAP1_UD_I (   f,
  userdata,
  index,
  x,
  peek,
  ... 
)    f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)

◆ MAP2

#define MAP2 (   f,
  ... 
)    EVAL(MAP12(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

◆ MAP_END

#define MAP_END (   ...)

◆ MAP_GET_END

#define MAP_GET_END (   ...)    MAP_GET_END1

◆ MAP_GET_END1

#define MAP_GET_END1 (   ...)    MAP_GET_END2

◆ MAP_GET_END2

#define MAP_GET_END2 ( )    0, MAP_END

◆ MAP_INC

#define MAP_INC (   X)    MAP_INC_##X

◆ MAP_INC_0

#define MAP_INC_0   1

◆ MAP_INC_1

#define MAP_INC_1   2

◆ MAP_INC_10

#define MAP_INC_10   11

◆ MAP_INC_100

#define MAP_INC_100   101

◆ MAP_INC_101

#define MAP_INC_101   102

◆ MAP_INC_102

#define MAP_INC_102   103

◆ MAP_INC_103

#define MAP_INC_103   104

◆ MAP_INC_104

#define MAP_INC_104   105

◆ MAP_INC_105

#define MAP_INC_105   106

◆ MAP_INC_106

#define MAP_INC_106   107

◆ MAP_INC_107

#define MAP_INC_107   108

◆ MAP_INC_108

#define MAP_INC_108   109

◆ MAP_INC_109

#define MAP_INC_109   110

◆ MAP_INC_11

#define MAP_INC_11   12

◆ MAP_INC_110

#define MAP_INC_110   111

◆ MAP_INC_111

#define MAP_INC_111   112

◆ MAP_INC_112

#define MAP_INC_112   113

◆ MAP_INC_113

#define MAP_INC_113   114

◆ MAP_INC_114

#define MAP_INC_114   115

◆ MAP_INC_115

#define MAP_INC_115   116

◆ MAP_INC_116

#define MAP_INC_116   117

◆ MAP_INC_117

#define MAP_INC_117   118

◆ MAP_INC_118

#define MAP_INC_118   119

◆ MAP_INC_119

#define MAP_INC_119   120

◆ MAP_INC_12

#define MAP_INC_12   13

◆ MAP_INC_120

#define MAP_INC_120   121

◆ MAP_INC_121

#define MAP_INC_121   122

◆ MAP_INC_122

#define MAP_INC_122   123

◆ MAP_INC_123

#define MAP_INC_123   124

◆ MAP_INC_124

#define MAP_INC_124   125

◆ MAP_INC_125

#define MAP_INC_125   126

◆ MAP_INC_126

#define MAP_INC_126   127

◆ MAP_INC_127

#define MAP_INC_127   128

◆ MAP_INC_128

#define MAP_INC_128   129

◆ MAP_INC_129

#define MAP_INC_129   130

◆ MAP_INC_13

#define MAP_INC_13   14

◆ MAP_INC_130

#define MAP_INC_130   131

◆ MAP_INC_131

#define MAP_INC_131   132

◆ MAP_INC_132

#define MAP_INC_132   133

◆ MAP_INC_133

#define MAP_INC_133   134

◆ MAP_INC_134

#define MAP_INC_134   135

◆ MAP_INC_135

#define MAP_INC_135   136

◆ MAP_INC_136

#define MAP_INC_136   137

◆ MAP_INC_137

#define MAP_INC_137   138

◆ MAP_INC_138

#define MAP_INC_138   139

◆ MAP_INC_139

#define MAP_INC_139   140

◆ MAP_INC_14

#define MAP_INC_14   15

◆ MAP_INC_140

#define MAP_INC_140   141

◆ MAP_INC_141

#define MAP_INC_141   142

◆ MAP_INC_142

#define MAP_INC_142   143

◆ MAP_INC_143

#define MAP_INC_143   144

◆ MAP_INC_144

#define MAP_INC_144   145

◆ MAP_INC_145

#define MAP_INC_145   146

◆ MAP_INC_146

#define MAP_INC_146   147

◆ MAP_INC_147

#define MAP_INC_147   148

◆ MAP_INC_148

#define MAP_INC_148   149

◆ MAP_INC_149

#define MAP_INC_149   150

◆ MAP_INC_15

#define MAP_INC_15   16

◆ MAP_INC_150

#define MAP_INC_150   151

◆ MAP_INC_151

#define MAP_INC_151   152

◆ MAP_INC_152

#define MAP_INC_152   153

◆ MAP_INC_153

#define MAP_INC_153   154

◆ MAP_INC_154

#define MAP_INC_154   155

◆ MAP_INC_155

#define MAP_INC_155   156

◆ MAP_INC_156

#define MAP_INC_156   157

◆ MAP_INC_157

#define MAP_INC_157   158

◆ MAP_INC_158

#define MAP_INC_158   159

◆ MAP_INC_159

#define MAP_INC_159   160

◆ MAP_INC_16

#define MAP_INC_16   17

◆ MAP_INC_160

#define MAP_INC_160   161

◆ MAP_INC_161

#define MAP_INC_161   162

◆ MAP_INC_162

#define MAP_INC_162   163

◆ MAP_INC_163

#define MAP_INC_163   164

◆ MAP_INC_164

#define MAP_INC_164   165

◆ MAP_INC_165

#define MAP_INC_165   166

◆ MAP_INC_166

#define MAP_INC_166   167

◆ MAP_INC_167

#define MAP_INC_167   168

◆ MAP_INC_168

#define MAP_INC_168   169

◆ MAP_INC_169

#define MAP_INC_169   170

◆ MAP_INC_17

#define MAP_INC_17   18

◆ MAP_INC_170

#define MAP_INC_170   171

◆ MAP_INC_171

#define MAP_INC_171   172

◆ MAP_INC_172

#define MAP_INC_172   173

◆ MAP_INC_173

#define MAP_INC_173   174

◆ MAP_INC_174

#define MAP_INC_174   175

◆ MAP_INC_175

#define MAP_INC_175   176

◆ MAP_INC_176

#define MAP_INC_176   177

◆ MAP_INC_177

#define MAP_INC_177   178

◆ MAP_INC_178

#define MAP_INC_178   179

◆ MAP_INC_179

#define MAP_INC_179   180

◆ MAP_INC_18

#define MAP_INC_18   19

◆ MAP_INC_180

#define MAP_INC_180   181

◆ MAP_INC_181

#define MAP_INC_181   182

◆ MAP_INC_182

#define MAP_INC_182   183

◆ MAP_INC_183

#define MAP_INC_183   184

◆ MAP_INC_184

#define MAP_INC_184   185

◆ MAP_INC_185

#define MAP_INC_185   186

◆ MAP_INC_186

#define MAP_INC_186   187

◆ MAP_INC_187

#define MAP_INC_187   188

◆ MAP_INC_188

#define MAP_INC_188   189

◆ MAP_INC_189

#define MAP_INC_189   190

◆ MAP_INC_19

#define MAP_INC_19   20

◆ MAP_INC_190

#define MAP_INC_190   191

◆ MAP_INC_191

#define MAP_INC_191   192

◆ MAP_INC_192

#define MAP_INC_192   193

◆ MAP_INC_193

#define MAP_INC_193   194

◆ MAP_INC_194

#define MAP_INC_194   195

◆ MAP_INC_195

#define MAP_INC_195   196

◆ MAP_INC_196

#define MAP_INC_196   197

◆ MAP_INC_197

#define MAP_INC_197   198

◆ MAP_INC_198

#define MAP_INC_198   199

◆ MAP_INC_199

#define MAP_INC_199   200

◆ MAP_INC_2

#define MAP_INC_2   3

◆ MAP_INC_20

#define MAP_INC_20   21

◆ MAP_INC_200

#define MAP_INC_200   201

◆ MAP_INC_201

#define MAP_INC_201   202

◆ MAP_INC_202

#define MAP_INC_202   203

◆ MAP_INC_203

#define MAP_INC_203   204

◆ MAP_INC_204

#define MAP_INC_204   205

◆ MAP_INC_205

#define MAP_INC_205   206

◆ MAP_INC_206

#define MAP_INC_206   207

◆ MAP_INC_207

#define MAP_INC_207   208

◆ MAP_INC_208

#define MAP_INC_208   209

◆ MAP_INC_209

#define MAP_INC_209   210

◆ MAP_INC_21

#define MAP_INC_21   22

◆ MAP_INC_210

#define MAP_INC_210   211

◆ MAP_INC_211

#define MAP_INC_211   212

◆ MAP_INC_212

#define MAP_INC_212   213

◆ MAP_INC_213

#define MAP_INC_213   214

◆ MAP_INC_214

#define MAP_INC_214   215

◆ MAP_INC_215

#define MAP_INC_215   216

◆ MAP_INC_216

#define MAP_INC_216   217

◆ MAP_INC_217

#define MAP_INC_217   218

◆ MAP_INC_218

#define MAP_INC_218   219

◆ MAP_INC_219

#define MAP_INC_219   220

◆ MAP_INC_22

#define MAP_INC_22   23

◆ MAP_INC_220

#define MAP_INC_220   221

◆ MAP_INC_221

#define MAP_INC_221   222

◆ MAP_INC_222

#define MAP_INC_222   223

◆ MAP_INC_223

#define MAP_INC_223   224

◆ MAP_INC_224

#define MAP_INC_224   225

◆ MAP_INC_225

#define MAP_INC_225   226

◆ MAP_INC_226

#define MAP_INC_226   227

◆ MAP_INC_227

#define MAP_INC_227   228

◆ MAP_INC_228

#define MAP_INC_228   229

◆ MAP_INC_229

#define MAP_INC_229   230

◆ MAP_INC_23

#define MAP_INC_23   24

◆ MAP_INC_230

#define MAP_INC_230   231

◆ MAP_INC_231

#define MAP_INC_231   232

◆ MAP_INC_232

#define MAP_INC_232   233

◆ MAP_INC_233

#define MAP_INC_233   234

◆ MAP_INC_234

#define MAP_INC_234   235

◆ MAP_INC_235

#define MAP_INC_235   236

◆ MAP_INC_236

#define MAP_INC_236   237

◆ MAP_INC_237

#define MAP_INC_237   238

◆ MAP_INC_238

#define MAP_INC_238   239

◆ MAP_INC_239

#define MAP_INC_239   240

◆ MAP_INC_24

#define MAP_INC_24   25

◆ MAP_INC_240

#define MAP_INC_240   241

◆ MAP_INC_241

#define MAP_INC_241   242

◆ MAP_INC_242

#define MAP_INC_242   243

◆ MAP_INC_243

#define MAP_INC_243   244

◆ MAP_INC_244

#define MAP_INC_244   245

◆ MAP_INC_245

#define MAP_INC_245   246

◆ MAP_INC_246

#define MAP_INC_246   247

◆ MAP_INC_247

#define MAP_INC_247   248

◆ MAP_INC_248

#define MAP_INC_248   249

◆ MAP_INC_249

#define MAP_INC_249   250

◆ MAP_INC_25

#define MAP_INC_25   26

◆ MAP_INC_250

#define MAP_INC_250   251

◆ MAP_INC_251

#define MAP_INC_251   252

◆ MAP_INC_252

#define MAP_INC_252   253

◆ MAP_INC_253

#define MAP_INC_253   254

◆ MAP_INC_254

#define MAP_INC_254   255

◆ MAP_INC_255

#define MAP_INC_255   256

◆ MAP_INC_256

#define MAP_INC_256   257

◆ MAP_INC_257

#define MAP_INC_257   258

◆ MAP_INC_258

#define MAP_INC_258   259

◆ MAP_INC_259

#define MAP_INC_259   260

◆ MAP_INC_26

#define MAP_INC_26   27

◆ MAP_INC_260

#define MAP_INC_260   261

◆ MAP_INC_261

#define MAP_INC_261   262

◆ MAP_INC_262

#define MAP_INC_262   263

◆ MAP_INC_263

#define MAP_INC_263   264

◆ MAP_INC_264

#define MAP_INC_264   265

◆ MAP_INC_265

#define MAP_INC_265   266

◆ MAP_INC_266

#define MAP_INC_266   267

◆ MAP_INC_267

#define MAP_INC_267   268

◆ MAP_INC_268

#define MAP_INC_268   269

◆ MAP_INC_269

#define MAP_INC_269   270

◆ MAP_INC_27

#define MAP_INC_27   28

◆ MAP_INC_270

#define MAP_INC_270   271

◆ MAP_INC_271

#define MAP_INC_271   272

◆ MAP_INC_272

#define MAP_INC_272   273

◆ MAP_INC_273

#define MAP_INC_273   274

◆ MAP_INC_274

#define MAP_INC_274   275

◆ MAP_INC_275

#define MAP_INC_275   276

◆ MAP_INC_276

#define MAP_INC_276   277

◆ MAP_INC_277

#define MAP_INC_277   278

◆ MAP_INC_278

#define MAP_INC_278   279

◆ MAP_INC_279

#define MAP_INC_279   280

◆ MAP_INC_28

#define MAP_INC_28   29

◆ MAP_INC_280

#define MAP_INC_280   281

◆ MAP_INC_281

#define MAP_INC_281   282

◆ MAP_INC_282

#define MAP_INC_282   283

◆ MAP_INC_283

#define MAP_INC_283   284

◆ MAP_INC_284

#define MAP_INC_284   285

◆ MAP_INC_285

#define MAP_INC_285   286

◆ MAP_INC_286

#define MAP_INC_286   287

◆ MAP_INC_287

#define MAP_INC_287   288

◆ MAP_INC_288

#define MAP_INC_288   289

◆ MAP_INC_289

#define MAP_INC_289   290

◆ MAP_INC_29

#define MAP_INC_29   30

◆ MAP_INC_290

#define MAP_INC_290   291

◆ MAP_INC_291

#define MAP_INC_291   292

◆ MAP_INC_292

#define MAP_INC_292   293

◆ MAP_INC_293

#define MAP_INC_293   294

◆ MAP_INC_294

#define MAP_INC_294   295

◆ MAP_INC_295

#define MAP_INC_295   296

◆ MAP_INC_296

#define MAP_INC_296   297

◆ MAP_INC_297

#define MAP_INC_297   298

◆ MAP_INC_298

#define MAP_INC_298   299

◆ MAP_INC_299

#define MAP_INC_299   300

◆ MAP_INC_3

#define MAP_INC_3   4

◆ MAP_INC_30

#define MAP_INC_30   31

◆ MAP_INC_300

#define MAP_INC_300   301

◆ MAP_INC_301

#define MAP_INC_301   302

◆ MAP_INC_302

#define MAP_INC_302   303

◆ MAP_INC_303

#define MAP_INC_303   304

◆ MAP_INC_304

#define MAP_INC_304   305

◆ MAP_INC_305

#define MAP_INC_305   306

◆ MAP_INC_306

#define MAP_INC_306   307

◆ MAP_INC_307

#define MAP_INC_307   308

◆ MAP_INC_308

#define MAP_INC_308   309

◆ MAP_INC_309

#define MAP_INC_309   310

◆ MAP_INC_31

#define MAP_INC_31   32

◆ MAP_INC_310

#define MAP_INC_310   311

◆ MAP_INC_311

#define MAP_INC_311   312

◆ MAP_INC_312

#define MAP_INC_312   313

◆ MAP_INC_313

#define MAP_INC_313   314

◆ MAP_INC_314

#define MAP_INC_314   315

◆ MAP_INC_315

#define MAP_INC_315   316

◆ MAP_INC_316

#define MAP_INC_316   317

◆ MAP_INC_317

#define MAP_INC_317   318

◆ MAP_INC_318

#define MAP_INC_318   319

◆ MAP_INC_319

#define MAP_INC_319   320

◆ MAP_INC_32

#define MAP_INC_32   33

◆ MAP_INC_320

#define MAP_INC_320   321

◆ MAP_INC_321

#define MAP_INC_321   322

◆ MAP_INC_322

#define MAP_INC_322   323

◆ MAP_INC_323

#define MAP_INC_323   324

◆ MAP_INC_324

#define MAP_INC_324   325

◆ MAP_INC_325

#define MAP_INC_325   326

◆ MAP_INC_326

#define MAP_INC_326   327

◆ MAP_INC_327

#define MAP_INC_327   328

◆ MAP_INC_328

#define MAP_INC_328   329

◆ MAP_INC_329

#define MAP_INC_329   330

◆ MAP_INC_33

#define MAP_INC_33   34

◆ MAP_INC_330

#define MAP_INC_330   331

◆ MAP_INC_331

#define MAP_INC_331   332

◆ MAP_INC_332

#define MAP_INC_332   333

◆ MAP_INC_333

#define MAP_INC_333   334

◆ MAP_INC_334

#define MAP_INC_334   335

◆ MAP_INC_335

#define MAP_INC_335   336

◆ MAP_INC_336

#define MAP_INC_336   337

◆ MAP_INC_337

#define MAP_INC_337   338

◆ MAP_INC_338

#define MAP_INC_338   339

◆ MAP_INC_339

#define MAP_INC_339   340

◆ MAP_INC_34

#define MAP_INC_34   35

◆ MAP_INC_340

#define MAP_INC_340   341

◆ MAP_INC_341

#define MAP_INC_341   342

◆ MAP_INC_342

#define MAP_INC_342   343

◆ MAP_INC_343

#define MAP_INC_343   344

◆ MAP_INC_344

#define MAP_INC_344   345

◆ MAP_INC_345

#define MAP_INC_345   346

◆ MAP_INC_346

#define MAP_INC_346   347

◆ MAP_INC_347

#define MAP_INC_347   348

◆ MAP_INC_348

#define MAP_INC_348   349

◆ MAP_INC_349

#define MAP_INC_349   350

◆ MAP_INC_35

#define MAP_INC_35   36

◆ MAP_INC_350

#define MAP_INC_350   351

◆ MAP_INC_351

#define MAP_INC_351   352

◆ MAP_INC_352

#define MAP_INC_352   353

◆ MAP_INC_353

#define MAP_INC_353   354

◆ MAP_INC_354

#define MAP_INC_354   355

◆ MAP_INC_355

#define MAP_INC_355   356

◆ MAP_INC_356

#define MAP_INC_356   357

◆ MAP_INC_357

#define MAP_INC_357   358

◆ MAP_INC_358

#define MAP_INC_358   359

◆ MAP_INC_359

#define MAP_INC_359   360

◆ MAP_INC_36

#define MAP_INC_36   37

◆ MAP_INC_360

#define MAP_INC_360   361

◆ MAP_INC_361

#define MAP_INC_361   362

◆ MAP_INC_362

#define MAP_INC_362   363

◆ MAP_INC_363

#define MAP_INC_363   364

◆ MAP_INC_364

#define MAP_INC_364   365

◆ MAP_INC_365

#define MAP_INC_365   366

◆ MAP_INC_37

#define MAP_INC_37   38

◆ MAP_INC_38

#define MAP_INC_38   39

◆ MAP_INC_39

#define MAP_INC_39   40

◆ MAP_INC_4

#define MAP_INC_4   5

◆ MAP_INC_40

#define MAP_INC_40   41

◆ MAP_INC_41

#define MAP_INC_41   42

◆ MAP_INC_42

#define MAP_INC_42   43

◆ MAP_INC_43

#define MAP_INC_43   44

◆ MAP_INC_44

#define MAP_INC_44   45

◆ MAP_INC_45

#define MAP_INC_45   46

◆ MAP_INC_46

#define MAP_INC_46   47

◆ MAP_INC_47

#define MAP_INC_47   48

◆ MAP_INC_48

#define MAP_INC_48   49

◆ MAP_INC_49

#define MAP_INC_49   50

◆ MAP_INC_5

#define MAP_INC_5   6

◆ MAP_INC_50

#define MAP_INC_50   51

◆ MAP_INC_51

#define MAP_INC_51   52

◆ MAP_INC_52

#define MAP_INC_52   53

◆ MAP_INC_53

#define MAP_INC_53   54

◆ MAP_INC_54

#define MAP_INC_54   55

◆ MAP_INC_55

#define MAP_INC_55   56

◆ MAP_INC_56

#define MAP_INC_56   57

◆ MAP_INC_57

#define MAP_INC_57   58

◆ MAP_INC_58

#define MAP_INC_58   59

◆ MAP_INC_59

#define MAP_INC_59   60

◆ MAP_INC_6

#define MAP_INC_6   7

◆ MAP_INC_60

#define MAP_INC_60   61

◆ MAP_INC_61

#define MAP_INC_61   62

◆ MAP_INC_62

#define MAP_INC_62   63

◆ MAP_INC_63

#define MAP_INC_63   64

◆ MAP_INC_64

#define MAP_INC_64   65

◆ MAP_INC_65

#define MAP_INC_65   66

◆ MAP_INC_66

#define MAP_INC_66   67

◆ MAP_INC_67

#define MAP_INC_67   68

◆ MAP_INC_68

#define MAP_INC_68   69

◆ MAP_INC_69

#define MAP_INC_69   70

◆ MAP_INC_7

#define MAP_INC_7   8

◆ MAP_INC_70

#define MAP_INC_70   71

◆ MAP_INC_71

#define MAP_INC_71   72

◆ MAP_INC_72

#define MAP_INC_72   73

◆ MAP_INC_73

#define MAP_INC_73   74

◆ MAP_INC_74

#define MAP_INC_74   75

◆ MAP_INC_75

#define MAP_INC_75   76

◆ MAP_INC_76

#define MAP_INC_76   77

◆ MAP_INC_77

#define MAP_INC_77   78

◆ MAP_INC_78

#define MAP_INC_78   79

◆ MAP_INC_79

#define MAP_INC_79   80

◆ MAP_INC_8

#define MAP_INC_8   9

◆ MAP_INC_80

#define MAP_INC_80   81

◆ MAP_INC_81

#define MAP_INC_81   82

◆ MAP_INC_82

#define MAP_INC_82   83

◆ MAP_INC_83

#define MAP_INC_83   84

◆ MAP_INC_84

#define MAP_INC_84   85

◆ MAP_INC_85

#define MAP_INC_85   86

◆ MAP_INC_86

#define MAP_INC_86   87

◆ MAP_INC_87

#define MAP_INC_87   88

◆ MAP_INC_88

#define MAP_INC_88   89

◆ MAP_INC_89

#define MAP_INC_89   90

◆ MAP_INC_9

#define MAP_INC_9   10

◆ MAP_INC_90

#define MAP_INC_90   91

◆ MAP_INC_91

#define MAP_INC_91   92

◆ MAP_INC_92

#define MAP_INC_92   93

◆ MAP_INC_93

#define MAP_INC_93   94

◆ MAP_INC_94

#define MAP_INC_94   95

◆ MAP_INC_95

#define MAP_INC_95   96

◆ MAP_INC_96

#define MAP_INC_96   97

◆ MAP_INC_97

#define MAP_INC_97   98

◆ MAP_INC_98

#define MAP_INC_98   99

◆ MAP_INC_99

#define MAP_INC_99   100

◆ MAP_LIST

#define MAP_LIST (   f,
  ... 
)    EVAL(MAP_LIST2(f, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters and inserts commas between the results.

◆ MAP_LIST0

#define MAP_LIST0 (   f,
  x,
  peek,
  ... 
)    , f(x) DEFER(MAP_NEXT(peek, MAP_LIST1))(f, peek, __VA_ARGS__)

◆ MAP_LIST0_UD

#define MAP_LIST0_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    , f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST0_UD2

#define MAP_LIST0_UD2 (   f,
  userdata,
  x,
  y,
  peek,
  ... 
)    , f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD2))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST0_UD_I

#define MAP_LIST0_UD_I (   f,
  userdata,
  index,
  x,
  peek,
  ... 
)    , f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST1_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)

◆ MAP_LIST1

#define MAP_LIST1 (   f,
  x,
  peek,
  ... 
)    , f(x) DEFER(MAP_NEXT(peek, MAP_LIST0))(f, peek, __VA_ARGS__)

◆ MAP_LIST1_UD

#define MAP_LIST1_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    , f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST0_UD))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST1_UD2

#define MAP_LIST1_UD2 (   f,
  userdata,
  x,
  y,
  peek,
  ... 
)    , f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST0_UD2))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST1_UD_I

#define MAP_LIST1_UD_I (   f,
  userdata,
  index,
  x,
  peek,
  ... 
)    , f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)

◆ MAP_LIST2

#define MAP_LIST2 (   f,
  x,
  peek,
  ... 
)    f(x) DEFER(MAP_NEXT(peek, MAP_LIST1))(f, peek, __VA_ARGS__)

◆ MAP_LIST2_UD

#define MAP_LIST2_UD (   f,
  userdata,
  x,
  peek,
  ... 
)    f(x, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST2_UD2

#define MAP_LIST2_UD2 (   f,
  userdata,
  x,
  y,
  peek,
  ... 
)    f(x, y, userdata) DEFER(MAP_NEXT(peek, MAP_LIST1_UD2))(f, userdata, peek, __VA_ARGS__)

◆ MAP_LIST2_UD_I

#define MAP_LIST2_UD_I (   f,
  userdata,
  index,
  x,
  peek,
  ... 
)    f(x, userdata, index) DEFER(MAP_NEXT(peek, MAP_LIST0_UD_I))(f, userdata, MAP_INC(index), peek, __VA_ARGS__)

◆ MAP_LIST_UD

#define MAP_LIST_UD (   f,
  userdata,
  ... 
)    EVAL(MAP_LIST2_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters, inserts commas between the results, and passes userdata as the second parameter to each invocation, e.g. MAP_LIST_UD(f, x, a, b, c) evaluates to f(a, x), f(b, x), f(c, x)

◆ MAP_LIST_UD2

#define MAP_LIST_UD2 (   f,
  userdata,
  ... 
)    EVAL(MAP_LIST2_UD2(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

◆ MAP_LIST_UD_I

#define MAP_LIST_UD_I (   f,
  userdata,
  ... 
)    EVAL(MAP_LIST2_UD_I(f, userdata, 0, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters, inserts commas between the results, passes userdata as the second parameter to each invocation, and the index of the invocation as the third parameter, e.g. MAP_LIST_UD_I(f, x, a, b, c) evaluates to f(a, x, 0), f(b, x, 1), f(c, x, 2)

◆ MAP_NEXT

#define MAP_NEXT (   test,
  next 
)    MAP_NEXT1(MAP_GET_END test, next)

◆ MAP_NEXT0

#define MAP_NEXT0 (   test,
  next,
  ... 
)    next MAP_OUT

◆ MAP_NEXT1

#define MAP_NEXT1 (   test,
  next 
)    DEFER(MAP_NEXT0)(test, next, 0)

◆ MAP_OUT

#define MAP_OUT

◆ MAP_UD

#define MAP_UD (   f,
  userdata,
  ... 
)    EVAL(MAP1_UD(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters and passes userdata as the second parameter to each invocation, e.g. MAP_UD(f, x, a, b, c) evaluates to f(a, x) f(b, x) f(c, x)

◆ MAP_UD2

#define MAP_UD2 (   f,
  userdata,
  ... 
)    EVAL(MAP1_UD2(f, userdata, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

◆ MAP_UD_I

#define MAP_UD_I (   f,
  userdata,
  ... 
)    EVAL(MAP1_UD_I(f, userdata, 0, __VA_ARGS__, ()()(), ()()(), ()()(), 0))

Applies the function macro f to each of the remaining parameters, passes userdata as the second parameter to each invocation, and the index of the invocation as the third parameter, e.g. MAP_UD_I(f, x, a, b, c) evaluates to f(a, x, 0) f(b, x, 1) f(c, x, 2)