HawkTracer  0.8.0
mkcreflect.h File Reference
#include <stddef.h>

Go to the source code of this file.

Classes

struct  _MKCREFLECT_FieldInfo
 
struct  _MKCREFLECT_TypeInfo
 

Macros

#define MKCREFLECT_EXPAND_(X)   X
 
#define MKCREFLECT_EXPAND_VA_(...)   __VA_ARGS__
 
#define MKCREFLECT_FOREACH_1_(FNC, USER_DATA, ARG)   FNC(ARG, USER_DATA)
 
#define MKCREFLECT_FOREACH_2_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_1_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_3_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_2_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_4_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_3_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_5_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_4_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_6_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_5_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_7_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_6_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_8_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_7_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_9_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_8_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_10_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_9_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_11_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_10_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_12_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_11_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_13_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_12_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_14_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_13_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_15_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_14_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_16_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_15_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_17_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_16_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_18_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_17_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_19_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_18_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_20_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_19_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_21_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_20_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_22_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_21_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_23_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_22_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_24_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_23_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_FOREACH_25_(FNC, USER_DATA, ARG, ...)   FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_24_(FNC, USER_DATA, __VA_ARGS__))
 
#define MKCREFLECT_OVERRIDE_4(_1, _2, _3, _4, FNC, ...)   FNC
 
#define MKCREFLECT_OVERRIDE_4_PLACEHOLDER   1, 2, 3, 4
 
#define MKCREFLECT_OVERRIDE_5(_1, _2, _3, _4, _5, FNC, ...)   FNC
 
#define MKCREFLECT_OVERRIDE_5_PLACEHOLDER   MKCREFLECT_OVERRIDE_4_PLACEHOLDER, 5
 
#define MKCREFLECT_OVERRIDE_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, FNC, ...)   FNC
 
#define MKCREFLECT_OVERRIDE_14_PLACEHOLDER   MKCREFLECT_OVERRIDE_5_PLACEHOLDER, 6, 7, 8, 9, 10, 11, 12, 13, 14
 
#define MKCREFLECT_OVERRIDE_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, FNC, ...)   FNC
 
#define MKCREFLECT_OVERRIDE_20_PLACEHOLDER   MKCREFLECT_OVERRIDE_14_PLACEHOLDER, 15, 16, 17, 18, 19, 20
 
#define MKCREFLECT_OVERRIDE_25(_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, FNC, ...)   FNC
 
#define MKCREFLECT_OVERRIDE_25_PLACEHOLDER   MKCREFLECT_OVERRIDE_20_PLACEHOLDER, 21, 22, 23, 24, 25
 
#define MKCREFLECT_FOREACH(FNC, USER_DATA, ...)
 
#define MKCREFLECT_DECLARE_SIMPLE_FIELD_(IGNORE, TYPE, FIELD_NAME)   TYPE FIELD_NAME;
 
#define MKCREFLECT_DECLARE_ARRAY_FIELD_(IGNORE, TYPE, FIELD_NAME, ARRAY_SIZE)   TYPE FIELD_NAME[ARRAY_SIZE];
 
#define MKCREFLECT_DECLARE_FIELD_(...)
 
#define MKCREFLECT_DECLARE_FIELD(X, USER_DATA)   MKCREFLECT_DECLARE_FIELD_ X
 
#define MKCREFLECT_SIZEOF_(IGNORE, C_TYPE, ...)   +sizeof(C_TYPE)
 
#define MKCREFLECT_SIZEOF(X, USER_DATA)   MKCREFLECT_SIZEOF_ X
 
#define MKCREFLECT_SUM(...)   +1
 
#define MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)   (C_TYPE)-1 < (C_TYPE)1
 
#define MKCREFLECT_IS_SIGNED_STRUCT(C_TYPE)   0
 
#define MKCREFLECT_IS_SIGNED_STRING(C_TYPE)   MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)
 
#define MKCREFLECT_IS_SIGNED_INTEGER(C_TYPE)   MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)
 
#define MKCREFLECT_IS_SIGNED_FLOAT(C_TYPE)   MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)
 
#define MKCREFLECT_IS_SIGNED_DOUBLE(C_TYPE)   MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)
 
#define MKCREFLECT_IS_SIGNED_POINTER(C_TYPE)   0
 
#define MKCREFLECT_IS_SIGNED_(DATA_TYPE, CTYPE)   MKCREFLECT_IS_SIGNED_##DATA_TYPE(CTYPE)
 
#define MKCREFLECT_ARRAY_FIELD_INFO_(TYPE_NAME, DATA_TYPE, C_TYPE, FIELD_NAME, ARRAY_SIZE)
 
#define MKCREFLECT_SIMPLE_FIELD_INFO_(TYPE_NAME, DATA_TYPE, C_TYPE, FIELD_NAME)
 
#define MKCREFLECT_FIELD_INFO_(...)
 
#define MKCREFLECT_FIELD_INFO(X, USER_DATA)   MKCREFLECT_FIELD_INFO_(USER_DATA, MKCREFLECT_EXPAND_VA_ X)
 
#define MKCREFLECT_DEFINE_GET_METHOD(TYPE_NAME, ...)
 
#define MKCREFLECT_DEFINE_STRUCT(TYPE_NAME, ...)
 

Typedefs

typedef struct _MKCREFLECT_FieldInfo MKCREFLECT_FieldInfo
 
typedef struct _MKCREFLECT_TypeInfo MKCREFLECT_TypeInfo
 

Enumerations

enum  MKCREFLECT_Types {
  MKCREFLECT_TYPES_STRUCT = 1, MKCREFLECT_TYPES_STRING = 2, MKCREFLECT_TYPES_INTEGER = 3, MKCREFLECT_TYPES_FLOAT = 4,
  MKCREFLECT_TYPES_DOUBLE = 5, MKCREFLECT_TYPES_POINTER = 6
}
 

Macro Definition Documentation

◆ MKCREFLECT_ARRAY_FIELD_INFO_

#define MKCREFLECT_ARRAY_FIELD_INFO_ (   TYPE_NAME,
  DATA_TYPE,
  C_TYPE,
  FIELD_NAME,
  ARRAY_SIZE 
)
Value:
#C_TYPE, #FIELD_NAME, sizeof(C_TYPE) * ARRAY_SIZE, offsetof(TYPE_NAME, FIELD_NAME), \
MKCREFLECT_IS_SIGNED_(DATA_TYPE, C_TYPE), ARRAY_SIZE, MKCREFLECT_TYPES_##DATA_TYPE

◆ MKCREFLECT_DECLARE_ARRAY_FIELD_

#define MKCREFLECT_DECLARE_ARRAY_FIELD_ (   IGNORE,
  TYPE,
  FIELD_NAME,
  ARRAY_SIZE 
)    TYPE FIELD_NAME[ARRAY_SIZE];

◆ MKCREFLECT_DECLARE_FIELD

#define MKCREFLECT_DECLARE_FIELD (   X,
  USER_DATA 
)    MKCREFLECT_DECLARE_FIELD_ X

◆ MKCREFLECT_DECLARE_FIELD_

#define MKCREFLECT_DECLARE_FIELD_ (   ...)
Value:
__VA_ARGS__, \
#define MKCREFLECT_OVERRIDE_4(_1, _2, _3, _4, FNC,...)
Definition: mkcreflect.h:105
#define MKCREFLECT_EXPAND_(X)
Definition: mkcreflect.h:53
#define MKCREFLECT_OVERRIDE_4_PLACEHOLDER
Definition: mkcreflect.h:106
#define MKCREFLECT_DECLARE_ARRAY_FIELD_(IGNORE, TYPE, FIELD_NAME, ARRAY_SIZE)
Definition: mkcreflect.h:146
#define MKCREFLECT_DECLARE_SIMPLE_FIELD_(IGNORE, TYPE, FIELD_NAME)
Definition: mkcreflect.h:144

◆ MKCREFLECT_DECLARE_SIMPLE_FIELD_

#define MKCREFLECT_DECLARE_SIMPLE_FIELD_ (   IGNORE,
  TYPE,
  FIELD_NAME 
)    TYPE FIELD_NAME;

◆ MKCREFLECT_DEFINE_GET_METHOD

#define MKCREFLECT_DEFINE_GET_METHOD (   TYPE_NAME,
  ... 
)

◆ MKCREFLECT_DEFINE_STRUCT

#define MKCREFLECT_DEFINE_STRUCT (   TYPE_NAME,
  ... 
)
Value:
typedef struct \
{ \
MKCREFLECT_FOREACH(MKCREFLECT_DECLARE_FIELD, 0, __VA_ARGS__) \
} TYPE_NAME; \
MKCREFLECT_TypeInfo* mkcreflect_get_##TYPE_NAME##_type_info(void); \
MKCREFLECT_DEFINE_GET_METHOD(TYPE_NAME, __VA_ARGS__) \
#define MKCREFLECT_DECLARE_FIELD(X, USER_DATA)
Definition: mkcreflect.h:155

◆ MKCREFLECT_EXPAND_

#define MKCREFLECT_EXPAND_ (   X)    X

◆ MKCREFLECT_EXPAND_VA_

#define MKCREFLECT_EXPAND_VA_ (   ...)    __VA_ARGS__

◆ MKCREFLECT_FIELD_INFO

#define MKCREFLECT_FIELD_INFO (   X,
  USER_DATA 
)    MKCREFLECT_FIELD_INFO_(USER_DATA, MKCREFLECT_EXPAND_VA_ X)

◆ MKCREFLECT_FIELD_INFO_

#define MKCREFLECT_FIELD_INFO_ (   ...)
Value:
{ \
MKCREFLECT_EXPAND_(MKCREFLECT_OVERRIDE_5( \
__VA_ARGS__, \
},
#define MKCREFLECT_OVERRIDE_5(_1, _2, _3, _4, _5, FNC,...)
Definition: mkcreflect.h:107
#define MKCREFLECT_OVERRIDE_5_PLACEHOLDER
Definition: mkcreflect.h:108
#define MKCREFLECT_ARRAY_FIELD_INFO_(TYPE_NAME, DATA_TYPE, C_TYPE, FIELD_NAME, ARRAY_SIZE)
Definition: mkcreflect.h:172
#define MKCREFLECT_SIMPLE_FIELD_INFO_(TYPE_NAME, DATA_TYPE, C_TYPE, FIELD_NAME)
Definition: mkcreflect.h:176

◆ MKCREFLECT_FOREACH

#define MKCREFLECT_FOREACH (   FNC,
  USER_DATA,
  ... 
)
Value:
MKCREFLECT_FOREACH_1_)(FNC, USER_DATA, __VA_ARGS__))
#define MKCREFLECT_FOREACH_7_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:66
#define MKCREFLECT_FOREACH_4_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:60
#define MKCREFLECT_FOREACH_20_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:92
#define MKCREFLECT_FOREACH_21_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:94
#define MKCREFLECT_FOREACH_3_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:58
#define MKCREFLECT_FOREACH_2_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:56
#define MKCREFLECT_FOREACH_24_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:100
#define MKCREFLECT_FOREACH_16_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:84
#define MKCREFLECT_FOREACH_19_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:90
#define MKCREFLECT_FOREACH_13_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:78
#define MKCREFLECT_FOREACH_10_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:72
#define MKCREFLECT_FOREACH_8_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:68
#define MKCREFLECT_FOREACH_1_(FNC, USER_DATA, ARG)
Definition: mkcreflect.h:55
#define MKCREFLECT_FOREACH_17_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:86
#define MKCREFLECT_FOREACH_18_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:88
#define MKCREFLECT_FOREACH_11_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:74
#define MKCREFLECT_EXPAND_(X)
Definition: mkcreflect.h:53
#define MKCREFLECT_FOREACH_15_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:82
#define MKCREFLECT_FOREACH_25_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:102
#define MKCREFLECT_FOREACH_12_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:76
#define MKCREFLECT_FOREACH_9_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:70
#define MKCREFLECT_FOREACH_14_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:80
#define MKCREFLECT_FOREACH_5_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:62
#define MKCREFLECT_FOREACH_6_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:64
#define MKCREFLECT_FOREACH_22_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:96
#define MKCREFLECT_FOREACH_23_(FNC, USER_DATA, ARG,...)
Definition: mkcreflect.h:98
#define MKCREFLECT_OVERRIDE_25(_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, FNC,...)
Definition: mkcreflect.h:113

◆ MKCREFLECT_FOREACH_10_

#define MKCREFLECT_FOREACH_10_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_9_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_11_

#define MKCREFLECT_FOREACH_11_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_10_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_12_

#define MKCREFLECT_FOREACH_12_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_11_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_13_

#define MKCREFLECT_FOREACH_13_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_12_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_14_

#define MKCREFLECT_FOREACH_14_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_13_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_15_

#define MKCREFLECT_FOREACH_15_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_14_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_16_

#define MKCREFLECT_FOREACH_16_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_15_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_17_

#define MKCREFLECT_FOREACH_17_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_16_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_18_

#define MKCREFLECT_FOREACH_18_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_17_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_19_

#define MKCREFLECT_FOREACH_19_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_18_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_1_

#define MKCREFLECT_FOREACH_1_ (   FNC,
  USER_DATA,
  ARG 
)    FNC(ARG, USER_DATA)

◆ MKCREFLECT_FOREACH_20_

#define MKCREFLECT_FOREACH_20_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_19_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_21_

#define MKCREFLECT_FOREACH_21_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_20_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_22_

#define MKCREFLECT_FOREACH_22_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_21_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_23_

#define MKCREFLECT_FOREACH_23_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_22_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_24_

#define MKCREFLECT_FOREACH_24_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_23_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_25_

#define MKCREFLECT_FOREACH_25_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_24_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_2_

#define MKCREFLECT_FOREACH_2_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_1_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_3_

#define MKCREFLECT_FOREACH_3_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_2_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_4_

#define MKCREFLECT_FOREACH_4_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_3_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_5_

#define MKCREFLECT_FOREACH_5_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_4_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_6_

#define MKCREFLECT_FOREACH_6_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_5_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_7_

#define MKCREFLECT_FOREACH_7_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_6_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_8_

#define MKCREFLECT_FOREACH_8_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_7_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_FOREACH_9_

#define MKCREFLECT_FOREACH_9_ (   FNC,
  USER_DATA,
  ARG,
  ... 
)    FNC(ARG, USER_DATA) MKCREFLECT_EXPAND_(MKCREFLECT_FOREACH_8_(FNC, USER_DATA, __VA_ARGS__))

◆ MKCREFLECT_IS_SIGNED_

#define MKCREFLECT_IS_SIGNED_ (   DATA_TYPE,
  CTYPE 
)    MKCREFLECT_IS_SIGNED_##DATA_TYPE(CTYPE)

◆ MKCREFLECT_IS_SIGNED_DOUBLE

#define MKCREFLECT_IS_SIGNED_DOUBLE (   C_TYPE)    MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)

◆ MKCREFLECT_IS_SIGNED_FLOAT

#define MKCREFLECT_IS_SIGNED_FLOAT (   C_TYPE)    MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)

◆ MKCREFLECT_IS_SIGNED_INTEGER

#define MKCREFLECT_IS_SIGNED_INTEGER (   C_TYPE)    MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)

◆ MKCREFLECT_IS_SIGNED_POINTER

#define MKCREFLECT_IS_SIGNED_POINTER (   C_TYPE)    0

◆ MKCREFLECT_IS_SIGNED_STRING

#define MKCREFLECT_IS_SIGNED_STRING (   C_TYPE)    MKCREFLECT_IS_TYPE_SIGNED_(C_TYPE)

◆ MKCREFLECT_IS_SIGNED_STRUCT

#define MKCREFLECT_IS_SIGNED_STRUCT (   C_TYPE)    0

◆ MKCREFLECT_IS_TYPE_SIGNED_

#define MKCREFLECT_IS_TYPE_SIGNED_ (   C_TYPE)    (C_TYPE)-1 < (C_TYPE)1

◆ MKCREFLECT_OVERRIDE_14

#define MKCREFLECT_OVERRIDE_14 (   _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  _11,
  _12,
  _13,
  _14,
  FNC,
  ... 
)    FNC

◆ MKCREFLECT_OVERRIDE_14_PLACEHOLDER

#define MKCREFLECT_OVERRIDE_14_PLACEHOLDER   MKCREFLECT_OVERRIDE_5_PLACEHOLDER, 6, 7, 8, 9, 10, 11, 12, 13, 14

◆ MKCREFLECT_OVERRIDE_20

#define MKCREFLECT_OVERRIDE_20 (   _1,
  _2,
  _3,
  _4,
  _5,
  _6,
  _7,
  _8,
  _9,
  _10,
  _11,
  _12,
  _13,
  _14,
  _15,
  _16,
  _17,
  _18,
  _19,
  _20,
  FNC,
  ... 
)    FNC

◆ MKCREFLECT_OVERRIDE_20_PLACEHOLDER

#define MKCREFLECT_OVERRIDE_20_PLACEHOLDER   MKCREFLECT_OVERRIDE_14_PLACEHOLDER, 15, 16, 17, 18, 19, 20

◆ MKCREFLECT_OVERRIDE_25

#define MKCREFLECT_OVERRIDE_25 (   _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,
  FNC,
  ... 
)    FNC

◆ MKCREFLECT_OVERRIDE_25_PLACEHOLDER

#define MKCREFLECT_OVERRIDE_25_PLACEHOLDER   MKCREFLECT_OVERRIDE_20_PLACEHOLDER, 21, 22, 23, 24, 25

◆ MKCREFLECT_OVERRIDE_4

#define MKCREFLECT_OVERRIDE_4 (   _1,
  _2,
  _3,
  _4,
  FNC,
  ... 
)    FNC

◆ MKCREFLECT_OVERRIDE_4_PLACEHOLDER

#define MKCREFLECT_OVERRIDE_4_PLACEHOLDER   1, 2, 3, 4

◆ MKCREFLECT_OVERRIDE_5

#define MKCREFLECT_OVERRIDE_5 (   _1,
  _2,
  _3,
  _4,
  _5,
  FNC,
  ... 
)    FNC

◆ MKCREFLECT_OVERRIDE_5_PLACEHOLDER

#define MKCREFLECT_OVERRIDE_5_PLACEHOLDER   MKCREFLECT_OVERRIDE_4_PLACEHOLDER, 5

◆ MKCREFLECT_SIMPLE_FIELD_INFO_

#define MKCREFLECT_SIMPLE_FIELD_INFO_ (   TYPE_NAME,
  DATA_TYPE,
  C_TYPE,
  FIELD_NAME 
)
Value:
#C_TYPE, #FIELD_NAME, sizeof(C_TYPE), offsetof(TYPE_NAME, FIELD_NAME), \
MKCREFLECT_IS_SIGNED_(DATA_TYPE, C_TYPE), -1, MKCREFLECT_TYPES_##DATA_TYPE

◆ MKCREFLECT_SIZEOF

#define MKCREFLECT_SIZEOF (   X,
  USER_DATA 
)    MKCREFLECT_SIZEOF_ X

◆ MKCREFLECT_SIZEOF_

#define MKCREFLECT_SIZEOF_ (   IGNORE,
  C_TYPE,
  ... 
)    +sizeof(C_TYPE)

◆ MKCREFLECT_SUM

#define MKCREFLECT_SUM (   ...)    +1

Typedef Documentation

◆ MKCREFLECT_FieldInfo

◆ MKCREFLECT_TypeInfo

Enumeration Type Documentation

◆ MKCREFLECT_Types

Enumerator
MKCREFLECT_TYPES_STRUCT 
MKCREFLECT_TYPES_STRING 
MKCREFLECT_TYPES_INTEGER 
MKCREFLECT_TYPES_FLOAT 
MKCREFLECT_TYPES_DOUBLE 
MKCREFLECT_TYPES_POINTER