Blender  V3.3
Macros
BLI_utildefines_variadic.h File Reference

Go to the source code of this file.

Macros

#define _VA_NARGS_GLUE(x, y)   x y
 
#define _VA_NARGS_RETURN_COUNT(_1_, _2_, _3_, _4_, _5_, _6_, _7_, _8_, _9_, _10_, _11_, _12_, _13_, _14_, _15_, _16_, _17_, _18_, _19_, _20_, _21_, _22_, _23_, _24_, _25_, _26_, _27_, _28_, _29_, _30_, _31_, _32_, _33_, _34_, _35_, _36_, _37_, _38_, _39_, _40_, _41_, _42_, _43_, _44_, _45_, _46_, _47_, _48_, _49_, _50_, _51_, _52_, _53_, _54_, _55_, _56_, _57_, _58_, _59_, _60_, _61_, _62_, _63_, _64_, count, ...)   count
 
#define _VA_NARGS_EXPAND(args)   _VA_NARGS_RETURN_COUNT args
 
#define _VA_NARGS_OVERLOAD_MACRO2(name, count)   name##count
 
#define _VA_NARGS_OVERLOAD_MACRO1(name, count)   _VA_NARGS_OVERLOAD_MACRO2(name, count)
 
#define _VA_NARGS_OVERLOAD_MACRO(name, count)   _VA_NARGS_OVERLOAD_MACRO1(name, count)
 
#define VA_NARGS_COUNT(...)
 
#define VA_NARGS_CALL_OVERLOAD(name, ...)    _VA_NARGS_GLUE(_VA_NARGS_OVERLOAD_MACRO(name, VA_NARGS_COUNT(__VA_ARGS__)), (__VA_ARGS__))
 

Macro Definition Documentation

◆ _VA_NARGS_EXPAND

#define _VA_NARGS_EXPAND (   args)    _VA_NARGS_RETURN_COUNT args

Definition at line 20 of file BLI_utildefines_variadic.h.

◆ _VA_NARGS_GLUE

#define _VA_NARGS_GLUE (   x,
  y 
)    x y

Definition at line 13 of file BLI_utildefines_variadic.h.

◆ _VA_NARGS_OVERLOAD_MACRO

#define _VA_NARGS_OVERLOAD_MACRO (   name,
  count 
)    _VA_NARGS_OVERLOAD_MACRO1(name, count)

Definition at line 23 of file BLI_utildefines_variadic.h.

◆ _VA_NARGS_OVERLOAD_MACRO1

#define _VA_NARGS_OVERLOAD_MACRO1 (   name,
  count 
)    _VA_NARGS_OVERLOAD_MACRO2(name, count)

Definition at line 22 of file BLI_utildefines_variadic.h.

◆ _VA_NARGS_OVERLOAD_MACRO2

#define _VA_NARGS_OVERLOAD_MACRO2 (   name,
  count 
)    name##count

Definition at line 21 of file BLI_utildefines_variadic.h.

◆ _VA_NARGS_RETURN_COUNT

#define _VA_NARGS_RETURN_COUNT (   _1_,
  _2_,
  _3_,
  _4_,
  _5_,
  _6_,
  _7_,
  _8_,
  _9_,
  _10_,
  _11_,
  _12_,
  _13_,
  _14_,
  _15_,
  _16_,
  _17_,
  _18_,
  _19_,
  _20_,
  _21_,
  _22_,
  _23_,
  _24_,
  _25_,
  _26_,
  _27_,
  _28_,
  _29_,
  _30_,
  _31_,
  _32_,
  _33_,
  _34_,
  _35_,
  _36_,
  _37_,
  _38_,
  _39_,
  _40_,
  _41_,
  _42_,
  _43_,
  _44_,
  _45_,
  _46_,
  _47_,
  _48_,
  _49_,
  _50_,
  _51_,
  _52_,
  _53_,
  _54_,
  _55_,
  _56_,
  _57_,
  _58_,
  _59_,
  _60_,
  _61_,
  _62_,
  _63_,
  _64_,
  count,
  ... 
)    count

Definition at line 14 of file BLI_utildefines_variadic.h.

◆ VA_NARGS_CALL_OVERLOAD

#define VA_NARGS_CALL_OVERLOAD (   name,
  ... 
)     _VA_NARGS_GLUE(_VA_NARGS_OVERLOAD_MACRO(name, VA_NARGS_COUNT(__VA_ARGS__)), (__VA_ARGS__))

Definition at line 31 of file BLI_utildefines_variadic.h.

◆ VA_NARGS_COUNT

#define VA_NARGS_COUNT (   ...)
Value:
_VA_NARGS_EXPAND((__VA_ARGS__, \
64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, \
48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, \
32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, \
16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0))
#define _VA_NARGS_EXPAND(args)

Definition at line 26 of file BLI_utildefines_variadic.h.