VSF Documented
vsf_foreach_macro.h File Reference
#include "vsf_macro_calc.h"

Go to the source code of this file.

Macros

#define __VSF_MEMPTY()
 
#define __VSF_MDEFER(__X)
 
#define __VSF_MOBSTRUCT(...)
 
#define __VSF_MEXPAND_ONCE(...)
 
#define __VSF_MEAT(...)
 
#define __VSF_MEXPAND(...)
 
#define __VSF_MEXPAND1(...)
 
#define __VSF_MEXPAND2(...)
 
#define __VSF_MEXPAND3(...)
 
#define __VSF_MEXPAND4(...)
 
#define __VSF_MEXPAND5(...)
 
#define ____VSF_MISEMPTY(__A, __B, __SIZE, ...)
 
#define __VSF_MISEMPTY(...)
 
#define VSF_MISEMPTY(__X, ...)
 
#define __VSF_MFOREACH(__MACRO, __MACRO_LAST, __X, ...)
 
#define __VSF_MFOREACH_0(__MACRO, __MACRO_LAST, __X, ...)
 
#define __VSF_MFOREACH_1(__MACRO, __MACRO_LAST, __X, ...)
 
#define __VSF_MFOREACH_I()
 
#define VSF_MFOREACH_EX(__MACRO, __MACRO_LAST, ...)
 
#define VSF_MFOREACH(__MACRO, ...)
 
#define __VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __X, ...)
 
#define __VSF_MFOREACH_ARG1_0(__MACRO, __MACRO_LAST, __ARG0, __X, ...)
 
#define __VSF_MFOREACH_ARG1_1(__MACRO, __MACRO_LAST, __ARG0, __X, ...)
 
#define __VSF_MFOREACH_ARG1_I()
 
#define VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO_LAST, __ARG0, ...)
 
#define VSF_MFOREACH_ARG1(__MACRO, __ARG0, ...)
 
#define __VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...)
 
#define __VSF_MFOREACH_ARG2_0(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...)
 
#define __VSF_MFOREACH_ARG2_1(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...)
 
#define __VSF_MFOREACH_ARG2_I()
 
#define VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1, ...)
 
#define VSF_MFOREACH_ARG2(__MACRO, __ARG0, __ARG1, ...)
 
#define __VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...)
 
#define __VSF_MFOREACH_ARG3_0(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...)
 
#define __VSF_MFOREACH_ARG3_1(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...)
 
#define __VSF_MFOREACH_ARG3_I()
 
#define VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, ...)
 
#define VSF_MFOREACH_ARG3(__MACRO, __ARG0, __ARG1, __ARG2, ...)
 

Macro Definition Documentation

◆ __VSF_MEMPTY

#define __VSF_MEMPTY ( )

◆ __VSF_MDEFER

#define __VSF_MDEFER ( __X)
Value:
#define __VSF_MEMPTY()
Definition vsf_foreach_macro.h:27

◆ __VSF_MOBSTRUCT

#define __VSF_MOBSTRUCT ( ...)
Value:
__VA_ARGS__ __VSF_MDEFER(__VSF_MEMPTY)()
#define __VSF_MDEFER(__X)
Definition vsf_foreach_macro.h:28

◆ __VSF_MEXPAND_ONCE

#define __VSF_MEXPAND_ONCE ( ...)
Value:
__VA_ARGS__

◆ __VSF_MEAT

#define __VSF_MEAT ( ...)

◆ __VSF_MEXPAND

#define __VSF_MEXPAND ( ...)
Value:
#define __VSF_MEXPAND1(...)
Definition vsf_foreach_macro.h:34

◆ __VSF_MEXPAND1

#define __VSF_MEXPAND1 ( ...)
Value:
#define __VSF_MEXPAND2(...)
Definition vsf_foreach_macro.h:35

◆ __VSF_MEXPAND2

#define __VSF_MEXPAND2 ( ...)
Value:
#define __VSF_MEXPAND3(...)
Definition vsf_foreach_macro.h:36

◆ __VSF_MEXPAND3

#define __VSF_MEXPAND3 ( ...)
Value:
#define __VSF_MEXPAND4(...)
Definition vsf_foreach_macro.h:37

◆ __VSF_MEXPAND4

#define __VSF_MEXPAND4 ( ...)
Value:
#define __VSF_MEXPAND5(...)
Definition vsf_foreach_macro.h:38

◆ __VSF_MEXPAND5

#define __VSF_MEXPAND5 ( ...)
Value:
__VA_ARGS__

◆ ____VSF_MISEMPTY

#define ____VSF_MISEMPTY ( __A,
__B,
__SIZE,
... )
Value:
__SIZE

◆ __VSF_MISEMPTY

#define __VSF_MISEMPTY ( ...)
Value:
____VSF_MISEMPTY(, ##__VA_ARGS__, 0, 1)
#define ____VSF_MISEMPTY(__A, __B, __SIZE,...)
Definition vsf_foreach_macro.h:41

◆ VSF_MISEMPTY

#define VSF_MISEMPTY ( __X,
... )
Value:
#define __VSF_MISEMPTY(...)
Definition vsf_foreach_macro.h:42

◆ __VSF_MFOREACH

#define __VSF_MFOREACH ( __MACRO,
__MACRO_LAST,
__X,
... )
Value:
VSF_MCAT2(__VSF_MFOREACH_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __X, __VA_ARGS__)
#define VSF_MISEMPTY(__X,...)
Definition vsf_foreach_macro.h:43
#define VSF_MCAT2(__X,...)
Definition vsf_macro_calc.h:30

◆ __VSF_MFOREACH_0

#define __VSF_MFOREACH_0 ( __MACRO,
__MACRO_LAST,
__X,
... )
Value:
__MACRO(__X) __VSF_MOBSTRUCT(__VSF_MFOREACH_I)()(__MACRO, __MACRO_LAST, __VA_ARGS__)
#define __VSF_MFOREACH_I()
Definition vsf_foreach_macro.h:52
#define __VSF_MOBSTRUCT(...)
Definition vsf_foreach_macro.h:29

◆ __VSF_MFOREACH_1

#define __VSF_MFOREACH_1 ( __MACRO,
__MACRO_LAST,
__X,
... )
Value:
__MACRO_LAST(__X)

◆ __VSF_MFOREACH_I

#define __VSF_MFOREACH_I ( )
Value:
#define __VSF_MFOREACH(__MACRO, __MACRO_LAST, __X,...)
Definition vsf_foreach_macro.h:46

◆ VSF_MFOREACH_EX

#define VSF_MFOREACH_EX ( __MACRO,
__MACRO_LAST,
... )
Value:
__VSF_MEXPAND(__VSF_MFOREACH(__MACRO, __MACRO_LAST, __VA_ARGS__))
#define __VSF_MEXPAND(...)
Definition vsf_foreach_macro.h:33

◆ VSF_MFOREACH

#define VSF_MFOREACH ( __MACRO,
... )
Value:
VSF_MFOREACH_EX(__MACRO, __MACRO, __VA_ARGS__)
#define VSF_MFOREACH_EX(__MACRO, __MACRO_LAST,...)
Definition vsf_foreach_macro.h:53

◆ __VSF_MFOREACH_ARG1

#define __VSF_MFOREACH_ARG1 ( __MACRO,
__MACRO_LAST,
__ARG0,
__X,
... )
Value:
VSF_MCAT2(__VSF_MFOREACH_ARG1_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __X, __VA_ARGS__)

◆ __VSF_MFOREACH_ARG1_0

#define __VSF_MFOREACH_ARG1_0 ( __MACRO,
__MACRO_LAST,
__ARG0,
__X,
... )
Value:
__MACRO(__ARG0, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG1_I)()(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__)
#define __VSF_MFOREACH_ARG1_I()
Definition vsf_foreach_macro.h:64

◆ __VSF_MFOREACH_ARG1_1

#define __VSF_MFOREACH_ARG1_1 ( __MACRO,
__MACRO_LAST,
__ARG0,
__X,
... )
Value:
__MACRO_LAST(__ARG0, __X)

◆ __VSF_MFOREACH_ARG1_I

#define __VSF_MFOREACH_ARG1_I ( )
Value:
#define __VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __X,...)
Definition vsf_foreach_macro.h:58

◆ VSF_MFOREACH_ARG1_EX

#define VSF_MFOREACH_ARG1_EX ( __MACRO,
__MACRO_LAST,
__ARG0,
... )
Value:
__VSF_MEXPAND(__VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__))

◆ VSF_MFOREACH_ARG1

#define VSF_MFOREACH_ARG1 ( __MACRO,
__ARG0,
... )
Value:
VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO, __ARG0, __VA_ARGS__)
#define VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO_LAST, __ARG0,...)
Definition vsf_foreach_macro.h:65

◆ __VSF_MFOREACH_ARG2

#define __VSF_MFOREACH_ARG2 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__X,
... )
Value:
VSF_MCAT2(__VSF_MFOREACH_ARG2_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, __VA_ARGS__)

◆ __VSF_MFOREACH_ARG2_0

#define __VSF_MFOREACH_ARG2_0 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__X,
... )
Value:
__MACRO(__ARG0, __ARG1, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG2_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__)
#define __VSF_MFOREACH_ARG2_I()
Definition vsf_foreach_macro.h:76

◆ __VSF_MFOREACH_ARG2_1

#define __VSF_MFOREACH_ARG2_1 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__X,
... )
Value:
__MACRO_LAST(__ARG0, __ARG1, __X)

◆ __VSF_MFOREACH_ARG2_I

#define __VSF_MFOREACH_ARG2_I ( )
Value:
#define __VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X,...)
Definition vsf_foreach_macro.h:70

◆ VSF_MFOREACH_ARG2_EX

#define VSF_MFOREACH_ARG2_EX ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
... )
Value:
__VSF_MEXPAND(__VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__))

◆ VSF_MFOREACH_ARG2

#define VSF_MFOREACH_ARG2 ( __MACRO,
__ARG0,
__ARG1,
... )
Value:
VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO, __ARG0, __ARG1, __VA_ARGS__)
#define VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1,...)
Definition vsf_foreach_macro.h:77

◆ __VSF_MFOREACH_ARG3

#define __VSF_MFOREACH_ARG3 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__ARG2,
__X,
... )
Value:
VSF_MCAT2(__VSF_MFOREACH_ARG3_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, __VA_ARGS__)

◆ __VSF_MFOREACH_ARG3_0

#define __VSF_MFOREACH_ARG3_0 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__ARG2,
__X,
... )
Value:
__MACRO(__ARG0, __ARG1, __ARG2, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG3_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__)
#define __VSF_MFOREACH_ARG3_I()
Definition vsf_foreach_macro.h:88

◆ __VSF_MFOREACH_ARG3_1

#define __VSF_MFOREACH_ARG3_1 ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__ARG2,
__X,
... )
Value:
__MACRO_LAST(__ARG0, __ARG1, __ARG2, __X)

◆ __VSF_MFOREACH_ARG3_I

#define __VSF_MFOREACH_ARG3_I ( )
Value:
#define __VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X,...)
Definition vsf_foreach_macro.h:82

◆ VSF_MFOREACH_ARG3_EX

#define VSF_MFOREACH_ARG3_EX ( __MACRO,
__MACRO_LAST,
__ARG0,
__ARG1,
__ARG2,
... )
Value:
__VSF_MEXPAND(__VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__))

◆ VSF_MFOREACH_ARG3

#define VSF_MFOREACH_ARG3 ( __MACRO,
__ARG0,
__ARG1,
__ARG2,
... )
Value:
VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO, __ARG0, __ARG1, __ARG2, __VA_ARGS__)
#define VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2,...)
Definition vsf_foreach_macro.h:89
Generated from commit: vsfteam/vsf@ceb53fd