CellModules
exportable.hpp File Reference
#include <functional>
#include <iostream>
#include <string>
#include "json.hpp"

Go to the source code of this file.

Classes

struct  ExportableAlias< S, T >
 
struct  BareType< T >
 
struct  ExportableType< C >
 
struct  BaseExportable
 
struct  BaseExportable::Exportable
 

Macros

#define __NARG__(...)   __NARG_I_(__VA_ARGS__, __RSEQ_N())
 
#define __NARG_I_(...)   __ARG_N(__VA_ARGS__)
 
#define __ARG_N(_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, N, ...)    N
 
#define __RSEQ_N()
 
#define _VFUNC_(name, n)   name##n
 
#define _VFUNC(name, n)   _VFUNC_(name, n)
 
#define VFUNC(func, ...)   _VFUNC(func, __NARG__(__VA_ARGS__))(__VA_ARGS__)
 
#define MECACELL_STR_FIRST(k, v)   #k
 
#define MECACELL_FIRST(k, v)   k
 
#define MECACELL_SECOND(k, v)   v
 
#define KV(p)   (p, p)
 
#define MECACELL_K(...)   MECACELL_FIRST __VA_ARGS__
 
#define MECACELL_SK(...)   MECACELL_STR_FIRST __VA_ARGS__
 
#define MECACELL_V(...)   MECACELL_SECOND __VA_ARGS__
 
#define EXPORTABLE_INHERIT(...)   VFUNC(EXPORTABLE_INHERIT, __VA_ARGS__)
 
#define EXPORTABLE(...)   VFUNC(EXPORTABLE, __VA_ARGS__)
 
#define EXPORTABLE_INHERIT3(S, Base, p0)
 
#define EXPORTABLE2(S, v0)   EXPORTABLE_INHERIT3(S, BaseExportable, v0)
 
#define EXPORTABLE_INHERIT4(S, Base, p0, p1)
 
#define EXPORTABLE3(S, v0, v1)   EXPORTABLE_INHERIT4(S, BaseExportable, v0, v1)
 
#define EXPORTABLE_INHERIT5(S, Base, p0, p1, p2)
 
#define EXPORTABLE4(S, v0, v1, v2)   EXPORTABLE_INHERIT5(S, BaseExportable, v0, v1, v2)
 
#define EXPORTABLE_INHERIT6(S, Base, p0, p1, p2, p3)
 
#define EXPORTABLE5(S, v0, v1, v2, v3)    EXPORTABLE_INHERIT6(S, BaseExportable, v0, v1, v2, v3)
 
#define EXPORTABLE_INHERIT7(S, Base, p0, p1, p2, p3, p4)
 
#define EXPORTABLE6(S, v0, v1, v2, v3, v4)    EXPORTABLE_INHERIT7(S, BaseExportable, v0, v1, v2, v3, v4)
 
#define EXPORTABLE_INHERIT8(S, Base, p0, p1, p2, p3, p4, p5)
 
#define EXPORTABLE7(S, v0, v1, v2, v3, v4, v5)    EXPORTABLE_INHERIT8(S, BaseExportable, v0, v1, v2, v3, v4, v5)
 
#define EXPORTABLE_INHERIT9(S, Base, p0, p1, p2, p3, p4, p5, p6)
 
#define EXPORTABLE8(S, v0, v1, v2, v3, v4, v5, v6)    EXPORTABLE_INHERIT9(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6)
 
#define EXPORTABLE_INHERIT10(S, Base, p0, p1, p2, p3, p4, p5, p6, p7)
 
#define EXPORTABLE9(S, v0, v1, v2, v3, v4, v5, v6, v7)    EXPORTABLE_INHERIT10(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7)
 
#define EXPORTABLE_INHERIT11(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8)
 
#define EXPORTABLE10(S, v0, v1, v2, v3, v4, v5, v6, v7, v8)    EXPORTABLE_INHERIT11(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8)
 
#define EXPORTABLE_INHERIT12(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)
 
#define EXPORTABLE11(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9)    EXPORTABLE_INHERIT12(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9)
 
#define EXPORTABLE_INHERIT13(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
 
#define EXPORTABLE12(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)    EXPORTABLE_INHERIT13(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)
 
#define EXPORTABLE_INHERIT14(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
 
#define EXPORTABLE13(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11)
 
#define EXPORTABLE_INHERIT15(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)
 
#define EXPORTABLE14(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12)
 
#define EXPORTABLE_INHERIT16(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)
 
#define EXPORTABLE15(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13)
 
#define EXPORTABLE_INHERIT17(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)
 
#define EXPORTABLE16(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14)
 
#define EXPORTABLE_INHERIT18(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
 
#define EXPORTABLE17(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15)
 
#define EXPORTABLE_INHERIT19(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)
 
#define EXPORTABLE18(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16)
 
#define EXPORTABLE_INHERIT20(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)
 
#define EXPORTABLE19(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17)
 
#define EXPORTABLE_INHERIT21(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)
 
#define EXPORTABLE20(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18)
 
#define EXPORTABLE_INHERIT22(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)
 
#define EXPORTABLE21(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19)
 
#define EXPORTABLE_INHERIT23(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)
 
#define EXPORTABLE22(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
 
#define EXPORTABLE_INHERIT24(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21)
 
#define EXPORTABLE23(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)
 
#define EXPORTABLE_INHERIT25(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22)
 
#define EXPORTABLE24(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)
 
#define EXPORTABLE_INHERIT26(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23)
 
#define EXPORTABLE25(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)
 
#define EXPORTABLE_INHERIT27(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24)
 
#define EXPORTABLE26(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24)
 
#define EXPORTABLE_INHERIT28(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25)
 
#define EXPORTABLE27(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25)
 
#define EXPORTABLE_INHERIT29(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26)
 
#define EXPORTABLE28(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26)
 
#define EXPORTABLE_INHERIT30(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27)
 
#define EXPORTABLE29(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27)
 
#define EXPORTABLE_INHERIT31(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28)
 
#define EXPORTABLE30(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28)
 
#define EXPORTABLE_INHERIT32(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29)
 
#define EXPORTABLE31(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29)
 
#define EXPORTABLE_INHERIT33(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30)
 
#define EXPORTABLE32(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30)
 
#define EXPORTABLE_INHERIT34(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31)
 
#define EXPORTABLE33(S, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31)
 

Functions

template<typename T >
T * asPtr (T &obj)
 
template<typename T >
T * asPtr (T *obj)
 
template<typename A , typename B , typename S >
void ExportableConstruct (A &a, const B &b, const S &)
 
template<typename A , typename S , typename T >
void ExportableConstruct (A &a, const ExportableAlias< S, T > &alias, const S &s)
 
template<typename NonEx , typename Ex , typename S >
void ExportableConstruct (std::vector< Ex > &a, const std::vector< NonEx > &b, const S &)
 
template<typename T >
void from_json (const nlohmann::json &j, T &e)
 
template<typename T >
void from_json (const nlohmann::json &j, std::vector< T > &e)
 
template<typename T >
void to_json (nlohmann::json &j, const T &e)
 
template<typename T >
void to_json (nlohmann::json &j, const std::vector< T > &e)
 

Macro Definition Documentation

◆ __ARG_N

#define __ARG_N (   _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,
  N,
  ... 
)     N

Definition at line 11 of file exportable.hpp.

◆ __NARG__

#define __NARG__ (   ...)    __NARG_I_(__VA_ARGS__, __RSEQ_N())

Definition at line 9 of file exportable.hpp.

◆ __NARG_I_

#define __NARG_I_ (   ...)    __ARG_N(__VA_ARGS__)

Definition at line 10 of file exportable.hpp.

◆ __RSEQ_N

#define __RSEQ_N ( )
Value:
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

Definition at line 17 of file exportable.hpp.

◆ _VFUNC

#define _VFUNC (   name,
 
)    _VFUNC_(name, n)

Definition at line 24 of file exportable.hpp.

◆ _VFUNC_

#define _VFUNC_ (   name,
 
)    name##n

Definition at line 23 of file exportable.hpp.

◆ EXPORTABLE

#define EXPORTABLE (   ...)    VFUNC(EXPORTABLE, __VA_ARGS__)

Definition at line 37 of file exportable.hpp.

◆ EXPORTABLE10

#define EXPORTABLE10 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8 
)     EXPORTABLE_INHERIT11(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8)

Definition at line 470 of file exportable.hpp.

◆ EXPORTABLE11

#define EXPORTABLE11 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9 
)     EXPORTABLE_INHERIT12(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9)

Definition at line 541 of file exportable.hpp.

◆ EXPORTABLE12

#define EXPORTABLE12 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10 
)     EXPORTABLE_INHERIT13(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)

Definition at line 617 of file exportable.hpp.

◆ EXPORTABLE13

#define EXPORTABLE13 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11 
)
Value:
EXPORTABLE_INHERIT14(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11)
#define EXPORTABLE_INHERIT14(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
Definition: exportable.hpp:620

Definition at line 697 of file exportable.hpp.

◆ EXPORTABLE14

#define EXPORTABLE14 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12 
)
Value:
EXPORTABLE_INHERIT15(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12)
#define EXPORTABLE_INHERIT15(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)
Definition: exportable.hpp:701

Definition at line 784 of file exportable.hpp.

◆ EXPORTABLE15

#define EXPORTABLE15 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13 
)
Value:
EXPORTABLE_INHERIT16(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13)
#define EXPORTABLE_INHERIT16(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)
Definition: exportable.hpp:788

Definition at line 875 of file exportable.hpp.

◆ EXPORTABLE16

#define EXPORTABLE16 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14 
)
Value:
EXPORTABLE_INHERIT17(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14)
#define EXPORTABLE_INHERIT17(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)
Definition: exportable.hpp:879

Definition at line 971 of file exportable.hpp.

◆ EXPORTABLE17

#define EXPORTABLE17 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15 
)
Value:
EXPORTABLE_INHERIT18(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15)
#define EXPORTABLE_INHERIT18(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
Definition: exportable.hpp:975

Definition at line 1071 of file exportable.hpp.

◆ EXPORTABLE18

#define EXPORTABLE18 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16 
)
Value:
EXPORTABLE_INHERIT19(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16)
#define EXPORTABLE_INHERIT19(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)

Definition at line 1177 of file exportable.hpp.

◆ EXPORTABLE19

#define EXPORTABLE19 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17 
)
Value:
EXPORTABLE_INHERIT20(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17)
#define EXPORTABLE_INHERIT20(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)

Definition at line 1287 of file exportable.hpp.

◆ EXPORTABLE2

#define EXPORTABLE2 (   S,
  v0 
)    EXPORTABLE_INHERIT3(S, BaseExportable, v0)

Definition at line 66 of file exportable.hpp.

◆ EXPORTABLE20

#define EXPORTABLE20 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18 
)
Value:
EXPORTABLE_INHERIT21(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18)
#define EXPORTABLE_INHERIT21(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18)

Definition at line 1402 of file exportable.hpp.

◆ EXPORTABLE21

#define EXPORTABLE21 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19 
)
Value:
EXPORTABLE_INHERIT22(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19)
#define EXPORTABLE_INHERIT22(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19)

Definition at line 1521 of file exportable.hpp.

◆ EXPORTABLE22

#define EXPORTABLE22 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20 
)
Value:
EXPORTABLE_INHERIT23(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
#define EXPORTABLE_INHERIT23(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20)

Definition at line 1645 of file exportable.hpp.

◆ EXPORTABLE23

#define EXPORTABLE23 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21 
)
Value:
EXPORTABLE_INHERIT24(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)
#define EXPORTABLE_INHERIT24(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21)

Definition at line 1773 of file exportable.hpp.

◆ EXPORTABLE24

#define EXPORTABLE24 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22 
)
Value:
EXPORTABLE_INHERIT25(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)
#define EXPORTABLE_INHERIT25(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22)

Definition at line 1906 of file exportable.hpp.

◆ EXPORTABLE25

#define EXPORTABLE25 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23 
)
Value:
EXPORTABLE_INHERIT26(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)
#define EXPORTABLE_INHERIT26(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23)

Definition at line 2043 of file exportable.hpp.

◆ EXPORTABLE26

#define EXPORTABLE26 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24 
)
Value:
EXPORTABLE_INHERIT27(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24)
#define EXPORTABLE_INHERIT27(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24)

Definition at line 2186 of file exportable.hpp.

◆ EXPORTABLE27

#define EXPORTABLE27 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25 
)
Value:
EXPORTABLE_INHERIT28(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25)
#define EXPORTABLE_INHERIT28(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25)

Definition at line 2334 of file exportable.hpp.

◆ EXPORTABLE28

#define EXPORTABLE28 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26 
)
Value:
EXPORTABLE_INHERIT29(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26)
#define EXPORTABLE_INHERIT29(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26)

Definition at line 2487 of file exportable.hpp.

◆ EXPORTABLE29

#define EXPORTABLE29 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26,
  v27 
)
Value:
EXPORTABLE_INHERIT30(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26, v27)
#define EXPORTABLE_INHERIT30(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27)

Definition at line 2644 of file exportable.hpp.

◆ EXPORTABLE3

#define EXPORTABLE3 (   S,
  v0,
  v1 
)    EXPORTABLE_INHERIT4(S, BaseExportable, v0, v1)

Definition at line 100 of file exportable.hpp.

◆ EXPORTABLE30

#define EXPORTABLE30 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26,
  v27,
  v28 
)
Value:
EXPORTABLE_INHERIT31(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26, v27, v28)
#define EXPORTABLE_INHERIT31(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28)

Definition at line 2806 of file exportable.hpp.

◆ EXPORTABLE31

#define EXPORTABLE31 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26,
  v27,
  v28,
  v29 
)
Value:
EXPORTABLE_INHERIT32(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26, v27, v28, v29)
#define EXPORTABLE_INHERIT32(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29)

Definition at line 2973 of file exportable.hpp.

◆ EXPORTABLE32

#define EXPORTABLE32 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26,
  v27,
  v28,
  v29,
  v30 
)
Value:
EXPORTABLE_INHERIT33(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26, v27, v28, v29, v30)
#define EXPORTABLE_INHERIT33(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30)

Definition at line 3145 of file exportable.hpp.

◆ EXPORTABLE33

#define EXPORTABLE33 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7,
  v8,
  v9,
  v10,
  v11,
  v12,
  v13,
  v14,
  v15,
  v16,
  v17,
  v18,
  v19,
  v20,
  v21,
  v22,
  v23,
  v24,
  v25,
  v26,
  v27,
  v28,
  v29,
  v30,
  v31 
)
Value:
EXPORTABLE_INHERIT34(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, \
v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, \
v24, v25, v26, v27, v28, v29, v30, v31)
#define EXPORTABLE_INHERIT34(S, Base, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24, p25, p26, p27, p28, p29, p30, p31)

Definition at line 3321 of file exportable.hpp.

◆ EXPORTABLE4

#define EXPORTABLE4 (   S,
  v0,
  v1,
  v2 
)    EXPORTABLE_INHERIT5(S, BaseExportable, v0, v1, v2)

Definition at line 138 of file exportable.hpp.

◆ EXPORTABLE5

#define EXPORTABLE5 (   S,
  v0,
  v1,
  v2,
  v3 
)     EXPORTABLE_INHERIT6(S, BaseExportable, v0, v1, v2, v3)

Definition at line 181 of file exportable.hpp.

◆ EXPORTABLE6

#define EXPORTABLE6 (   S,
  v0,
  v1,
  v2,
  v3,
  v4 
)     EXPORTABLE_INHERIT7(S, BaseExportable, v0, v1, v2, v3, v4)

Definition at line 230 of file exportable.hpp.

◆ EXPORTABLE7

#define EXPORTABLE7 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5 
)     EXPORTABLE_INHERIT8(S, BaseExportable, v0, v1, v2, v3, v4, v5)

Definition at line 283 of file exportable.hpp.

◆ EXPORTABLE8

#define EXPORTABLE8 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6 
)     EXPORTABLE_INHERIT9(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6)

Definition at line 341 of file exportable.hpp.

◆ EXPORTABLE9

#define EXPORTABLE9 (   S,
  v0,
  v1,
  v2,
  v3,
  v4,
  v5,
  v6,
  v7 
)     EXPORTABLE_INHERIT10(S, BaseExportable, v0, v1, v2, v3, v4, v5, v6, v7)

Definition at line 403 of file exportable.hpp.

◆ EXPORTABLE_INHERIT

#define EXPORTABLE_INHERIT (   ...)    VFUNC(EXPORTABLE_INHERIT, __VA_ARGS__)

Definition at line 36 of file exportable.hpp.

◆ EXPORTABLE_INHERIT10

#define EXPORTABLE_INHERIT10 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7 
)

Definition at line 344 of file exportable.hpp.

◆ EXPORTABLE_INHERIT11

#define EXPORTABLE_INHERIT11 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8 
)

Definition at line 406 of file exportable.hpp.

◆ EXPORTABLE_INHERIT12

#define EXPORTABLE_INHERIT12 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9 
)

Definition at line 473 of file exportable.hpp.

◆ EXPORTABLE_INHERIT13

#define EXPORTABLE_INHERIT13 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10 
)

Definition at line 544 of file exportable.hpp.

◆ EXPORTABLE_INHERIT14

#define EXPORTABLE_INHERIT14 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11 
)

Definition at line 620 of file exportable.hpp.

◆ EXPORTABLE_INHERIT15

#define EXPORTABLE_INHERIT15 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12 
)

Definition at line 701 of file exportable.hpp.

◆ EXPORTABLE_INHERIT16

#define EXPORTABLE_INHERIT16 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13 
)

Definition at line 788 of file exportable.hpp.

◆ EXPORTABLE_INHERIT17

#define EXPORTABLE_INHERIT17 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14 
)

Definition at line 879 of file exportable.hpp.

◆ EXPORTABLE_INHERIT18

#define EXPORTABLE_INHERIT18 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15 
)

Definition at line 975 of file exportable.hpp.

◆ EXPORTABLE_INHERIT19

#define EXPORTABLE_INHERIT19 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16 
)

Definition at line 1076 of file exportable.hpp.

◆ EXPORTABLE_INHERIT20

#define EXPORTABLE_INHERIT20 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17 
)

Definition at line 1182 of file exportable.hpp.

◆ EXPORTABLE_INHERIT21

#define EXPORTABLE_INHERIT21 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18 
)

Definition at line 1292 of file exportable.hpp.

◆ EXPORTABLE_INHERIT22

#define EXPORTABLE_INHERIT22 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19 
)

Definition at line 1407 of file exportable.hpp.

◆ EXPORTABLE_INHERIT23

#define EXPORTABLE_INHERIT23 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20 
)

Definition at line 1526 of file exportable.hpp.

◆ EXPORTABLE_INHERIT24

#define EXPORTABLE_INHERIT24 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21 
)

Definition at line 1650 of file exportable.hpp.

◆ EXPORTABLE_INHERIT25

#define EXPORTABLE_INHERIT25 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22 
)

Definition at line 1778 of file exportable.hpp.

◆ EXPORTABLE_INHERIT26

#define EXPORTABLE_INHERIT26 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23 
)

Definition at line 1911 of file exportable.hpp.

◆ EXPORTABLE_INHERIT27

#define EXPORTABLE_INHERIT27 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24 
)

Definition at line 2048 of file exportable.hpp.

◆ EXPORTABLE_INHERIT28

#define EXPORTABLE_INHERIT28 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25 
)

Definition at line 2192 of file exportable.hpp.

◆ EXPORTABLE_INHERIT29

#define EXPORTABLE_INHERIT29 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26 
)

Definition at line 2340 of file exportable.hpp.

◆ EXPORTABLE_INHERIT3

#define EXPORTABLE_INHERIT3 (   S,
  Base,
  p0 
)
Value:
struct Exportable : ExportableType<Base>::type { \
using BType = ExportableType<Base>::type; \
using json = nlohmann::json; \
typename ExportableType<decltype(S::MECACELL_V(p0))>::type MECACELL_K(p0); \
Exportable() {} \
Exportable(const std::string& dump) { from_json(json::parse(dump)); } \
Exportable(const S& s) : BType(static_cast<const BType&>(s)) { \
ExportableConstruct(MECACELL_K(p0), s.MECACELL_V(p0), s); \
} \
void from_json(const json& o) { \
if (o.count(MECACELL_SK(p0))) \
MECACELL_K(p0) = o[MECACELL_SK(p0)].get<decltype(MECACELL_K(p0))>(); \
} \
json to_json() const { \
auto b = BType::to_json(); \
auto r = to_jsonL(*this); \
if (!b.empty()) r.update(b); \
return r; \
} \
std::function<json(const Exportable&)> to_jsonL = [](const Exportable& s) { \
return s.saveJ(MECACELL_SK(p0), s.MECACELL_K(p0)); \
}; \
std::function<std::string(void)> save = [this]() { return to_json().dump(2); }; \
}; \
Exportable getExport() const { return Exportable(*this); }
#define MECACELL_SK(...)
Definition: exportable.hpp:33
void from_json(const nlohmann::json &j, T &e)
#define MECACELL_V(...)
Definition: exportable.hpp:34
void to_json(nlohmann::json &j, const T &e)
#define MECACELL_K(...)
Definition: exportable.hpp:32
basic_json<> json
default JSON class
Definition: json.hpp:871
Provides common mathematical functions and vector operations.
Definition: std.hpp:4
decltype(getType< typename BareType< C >::type >(std::declval< typename BareType< C >::type * >())) type

Definition at line 39 of file exportable.hpp.

◆ EXPORTABLE_INHERIT30

#define EXPORTABLE_INHERIT30 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26,
  p27 
)

Definition at line 2493 of file exportable.hpp.

◆ EXPORTABLE_INHERIT31

#define EXPORTABLE_INHERIT31 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26,
  p27,
  p28 
)

Definition at line 2650 of file exportable.hpp.

◆ EXPORTABLE_INHERIT32

#define EXPORTABLE_INHERIT32 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26,
  p27,
  p28,
  p29 
)

Definition at line 2813 of file exportable.hpp.

◆ EXPORTABLE_INHERIT33

#define EXPORTABLE_INHERIT33 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26,
  p27,
  p28,
  p29,
  p30 
)

Definition at line 2980 of file exportable.hpp.

◆ EXPORTABLE_INHERIT34

#define EXPORTABLE_INHERIT34 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6,
  p7,
  p8,
  p9,
  p10,
  p11,
  p12,
  p13,
  p14,
  p15,
  p16,
  p17,
  p18,
  p19,
  p20,
  p21,
  p22,
  p23,
  p24,
  p25,
  p26,
  p27,
  p28,
  p29,
  p30,
  p31 
)

Definition at line 3152 of file exportable.hpp.

◆ EXPORTABLE_INHERIT4

#define EXPORTABLE_INHERIT4 (   S,
  Base,
  p0,
  p1 
)
Value:
struct Exportable : ExportableType<Base>::type { \
using BType = ExportableType<Base>::type; \
using json = nlohmann::json; \
typename ExportableType<decltype(S::MECACELL_V(p0))>::type MECACELL_K(p0); \
typename ExportableType<decltype(S::MECACELL_V(p1))>::type MECACELL_K(p1); \
Exportable() {} \
Exportable(const std::string& dump) { from_json(json::parse(dump)); } \
Exportable(const S& s) : BType(static_cast<const BType&>(s)) { \
ExportableConstruct(MECACELL_K(p0), s.MECACELL_V(p0), s); \
ExportableConstruct(MECACELL_K(p1), s.MECACELL_V(p1), s); \
} \
void from_json(const json& o) { \
if (o.count(MECACELL_SK(p0))) \
MECACELL_K(p0) = o[MECACELL_SK(p0)].get<decltype(MECACELL_K(p0))>(); \
if (o.count(MECACELL_SK(p1))) \
MECACELL_K(p1) = o[MECACELL_SK(p1)].get<decltype(MECACELL_K(p1))>(); \
} \
json to_json() const { \
auto b = BType::to_json(); \
auto r = to_jsonL(*this); \
if (!b.empty()) r.update(b); \
return r; \
} \
std::function<json(const Exportable&)> to_jsonL = [](const Exportable& s) { \
return s.saveJ(MECACELL_SK(p0), s.MECACELL_K(p0), MECACELL_SK(p1), \
s.MECACELL_K(p1)); \
}; \
std::function<std::string(void)> save = [this]() { return to_json().dump(2); }; \
}; \
Exportable getExport() const { return Exportable(*this); }

Definition at line 68 of file exportable.hpp.

◆ EXPORTABLE_INHERIT5

#define EXPORTABLE_INHERIT5 (   S,
  Base,
  p0,
  p1,
  p2 
)

Definition at line 102 of file exportable.hpp.

◆ EXPORTABLE_INHERIT6

#define EXPORTABLE_INHERIT6 (   S,
  Base,
  p0,
  p1,
  p2,
  p3 
)

Definition at line 140 of file exportable.hpp.

◆ EXPORTABLE_INHERIT7

#define EXPORTABLE_INHERIT7 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4 
)

Definition at line 184 of file exportable.hpp.

◆ EXPORTABLE_INHERIT8

#define EXPORTABLE_INHERIT8 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5 
)

Definition at line 233 of file exportable.hpp.

◆ EXPORTABLE_INHERIT9

#define EXPORTABLE_INHERIT9 (   S,
  Base,
  p0,
  p1,
  p2,
  p3,
  p4,
  p5,
  p6 
)

Definition at line 286 of file exportable.hpp.

◆ KV

#define KV (   p)    (p, p)

Definition at line 30 of file exportable.hpp.

◆ MECACELL_FIRST

#define MECACELL_FIRST (   k,
 
)    k

Definition at line 28 of file exportable.hpp.

◆ MECACELL_K

#define MECACELL_K (   ...)    MECACELL_FIRST __VA_ARGS__

Definition at line 32 of file exportable.hpp.

◆ MECACELL_SECOND

#define MECACELL_SECOND (   k,
 
)    v

Definition at line 29 of file exportable.hpp.

◆ MECACELL_SK

#define MECACELL_SK (   ...)    MECACELL_STR_FIRST __VA_ARGS__

Definition at line 33 of file exportable.hpp.

◆ MECACELL_STR_FIRST

#define MECACELL_STR_FIRST (   k,
 
)    #k

Definition at line 27 of file exportable.hpp.

◆ MECACELL_V

#define MECACELL_V (   ...)    MECACELL_SECOND __VA_ARGS__

Definition at line 34 of file exportable.hpp.

◆ VFUNC

#define VFUNC (   func,
  ... 
)    _VFUNC(func, __NARG__(__VA_ARGS__))(__VA_ARGS__)

Definition at line 25 of file exportable.hpp.

Function Documentation

◆ asPtr() [1/2]

template<typename T >
T * asPtr ( T &  obj)
inline

Definition at line 3332 of file exportable.hpp.

◆ asPtr() [2/2]

template<typename T >
T * asPtr ( T *  obj)
inline

Definition at line 3333 of file exportable.hpp.

◆ ExportableConstruct() [1/3]

template<typename A , typename B , typename S >
void ExportableConstruct ( A &  a,
const B &  b,
const S &   
)

Definition at line 3340 of file exportable.hpp.

◆ ExportableConstruct() [2/3]

template<typename A , typename S , typename T >
void ExportableConstruct ( A &  a,
const ExportableAlias< S, T > &  alias,
const S &  s 
)

Definition at line 3345 of file exportable.hpp.

◆ ExportableConstruct() [3/3]

template<typename NonEx , typename Ex , typename S >
void ExportableConstruct ( std::vector< Ex > &  a,
const std::vector< NonEx > &  b,
const S &   
)

Definition at line 3350 of file exportable.hpp.

◆ from_json() [1/2]

template<typename T >
void from_json ( const nlohmann::json j,
std::vector< T > &  e 
)

Definition at line 3418 of file exportable.hpp.

◆ from_json() [2/2]

template<typename T >
void from_json ( const nlohmann::json j,
T &  e 
)

Definition at line 3417 of file exportable.hpp.

◆ to_json() [1/2]

template<typename T >
void to_json ( nlohmann::json j,
const std::vector< T > &  e 
)

Definition at line 3427 of file exportable.hpp.

◆ to_json() [2/2]

template<typename T >
void to_json ( nlohmann::json j,
const T &  e 
)

Definition at line 3426 of file exportable.hpp.