VSF Documented
|
#include "vsf_macro_calc.h"
Go to the source code of this file.
Macros | |
#define | __VSF_MEMPTY() |
#define | __VSF_MDEFER(__X) __X __VSF_MEMPTY() |
#define | __VSF_MOBSTRUCT(...) __VA_ARGS__ __VSF_MDEFER(__VSF_MEMPTY)() |
#define | __VSF_MEXPAND_ONCE(...) __VA_ARGS__ |
#define | __VSF_MEAT(...) |
#define | __VSF_MEXPAND(...) __VSF_MEXPAND1(__VSF_MEXPAND1(__VSF_MEXPAND1(__VSF_MEXPAND1(__VA_ARGS__)))) |
#define | __VSF_MEXPAND1(...) __VSF_MEXPAND2(__VSF_MEXPAND2(__VSF_MEXPAND2(__VSF_MEXPAND2(__VA_ARGS__)))) |
#define | __VSF_MEXPAND2(...) __VSF_MEXPAND3(__VSF_MEXPAND3(__VSF_MEXPAND3(__VSF_MEXPAND3(__VA_ARGS__)))) |
#define | __VSF_MEXPAND3(...) __VSF_MEXPAND4(__VSF_MEXPAND4(__VSF_MEXPAND4(__VSF_MEXPAND4(__VA_ARGS__)))) |
#define | __VSF_MEXPAND4(...) __VSF_MEXPAND5(__VSF_MEXPAND5(__VSF_MEXPAND5(__VSF_MEXPAND5(__VA_ARGS__)))) |
#define | __VSF_MEXPAND5(...) __VA_ARGS__ |
#define | ____VSF_MISEMPTY(__A, __B, __SIZE, ...) __SIZE |
#define | __VSF_MISEMPTY(...) ____VSF_MISEMPTY(, ##__VA_ARGS__, 0, 1) |
#define | VSF_MISEMPTY(__X, ...) __VSF_MISEMPTY(__X) |
#define | __VSF_MFOREACH(__MACRO, __MACRO_LAST, __X, ...) VSF_MCAT2(__VSF_MFOREACH_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __X, __VA_ARGS__) |
#define | __VSF_MFOREACH_0(__MACRO, __MACRO_LAST, __X, ...) __MACRO(__X) __VSF_MOBSTRUCT(__VSF_MFOREACH_I)()(__MACRO, __MACRO_LAST, __VA_ARGS__) |
#define | __VSF_MFOREACH_1(__MACRO, __MACRO_LAST, __X, ...) __MACRO_LAST(__X) |
#define | __VSF_MFOREACH_I() __VSF_MFOREACH |
#define | VSF_MFOREACH_EX(__MACRO, __MACRO_LAST, ...) __VSF_MEXPAND(__VSF_MFOREACH(__MACRO, __MACRO_LAST, __VA_ARGS__)) |
#define | VSF_MFOREACH(__MACRO, ...) VSF_MFOREACH_EX(__MACRO, __MACRO, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __X, ...) VSF_MCAT2(__VSF_MFOREACH_ARG1_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __X, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG1_0(__MACRO, __MACRO_LAST, __ARG0, __X, ...) __MACRO(__ARG0, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG1_I)()(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG1_1(__MACRO, __MACRO_LAST, __ARG0, __X, ...) __MACRO_LAST(__ARG0, __X) |
#define | __VSF_MFOREACH_ARG1_I() __VSF_MFOREACH_ARG1 |
#define | VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO_LAST, __ARG0, ...) __VSF_MEXPAND(__VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__)) |
#define | VSF_MFOREACH_ARG1(__MACRO, __ARG0, ...) VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO, __ARG0, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...) VSF_MCAT2(__VSF_MFOREACH_ARG2_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG2_0(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...) __MACRO(__ARG0, __ARG1, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG2_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG2_1(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, ...) __MACRO_LAST(__ARG0, __ARG1, __X) |
#define | __VSF_MFOREACH_ARG2_I() __VSF_MFOREACH_ARG2 |
#define | VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1, ...) __VSF_MEXPAND(__VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__)) |
#define | VSF_MFOREACH_ARG2(__MACRO, __ARG0, __ARG1, ...) VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO, __ARG0, __ARG1, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...) VSF_MCAT2(__VSF_MFOREACH_ARG3_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG3_0(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...) __MACRO(__ARG0, __ARG1, __ARG2, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG3_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__) |
#define | __VSF_MFOREACH_ARG3_1(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, ...) __MACRO_LAST(__ARG0, __ARG1, __ARG2, __X) |
#define | __VSF_MFOREACH_ARG3_I() __VSF_MFOREACH_ARG3 |
#define | VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, ...) __VSF_MEXPAND(__VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__)) |
#define | VSF_MFOREACH_ARG3(__MACRO, __ARG0, __ARG1, __ARG2, ...) VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO, __ARG0, __ARG1, __ARG2, __VA_ARGS__) |
#define __VSF_MEMPTY | ( | ) |
#define __VSF_MDEFER | ( | __X | ) | __X __VSF_MEMPTY() |
#define __VSF_MOBSTRUCT | ( | ... | ) | __VA_ARGS__ __VSF_MDEFER(__VSF_MEMPTY)() |
#define __VSF_MEXPAND_ONCE | ( | ... | ) | __VA_ARGS__ |
#define __VSF_MEAT | ( | ... | ) |
#define __VSF_MEXPAND | ( | ... | ) | __VSF_MEXPAND1(__VSF_MEXPAND1(__VSF_MEXPAND1(__VSF_MEXPAND1(__VA_ARGS__)))) |
#define __VSF_MEXPAND1 | ( | ... | ) | __VSF_MEXPAND2(__VSF_MEXPAND2(__VSF_MEXPAND2(__VSF_MEXPAND2(__VA_ARGS__)))) |
#define __VSF_MEXPAND2 | ( | ... | ) | __VSF_MEXPAND3(__VSF_MEXPAND3(__VSF_MEXPAND3(__VSF_MEXPAND3(__VA_ARGS__)))) |
#define __VSF_MEXPAND3 | ( | ... | ) | __VSF_MEXPAND4(__VSF_MEXPAND4(__VSF_MEXPAND4(__VSF_MEXPAND4(__VA_ARGS__)))) |
#define __VSF_MEXPAND4 | ( | ... | ) | __VSF_MEXPAND5(__VSF_MEXPAND5(__VSF_MEXPAND5(__VSF_MEXPAND5(__VA_ARGS__)))) |
#define __VSF_MEXPAND5 | ( | ... | ) | __VA_ARGS__ |
#define ____VSF_MISEMPTY | ( | __A, | |
__B, | |||
__SIZE, | |||
... | |||
) | __SIZE |
#define __VSF_MISEMPTY | ( | ... | ) | ____VSF_MISEMPTY(, ##__VA_ARGS__, 0, 1) |
#define VSF_MISEMPTY | ( | __X, | |
... | |||
) | __VSF_MISEMPTY(__X) |
#define __VSF_MFOREACH | ( | __MACRO, | |
__MACRO_LAST, | |||
__X, | |||
... | |||
) | VSF_MCAT2(__VSF_MFOREACH_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __X, __VA_ARGS__) |
#define __VSF_MFOREACH_0 | ( | __MACRO, | |
__MACRO_LAST, | |||
__X, | |||
... | |||
) | __MACRO(__X) __VSF_MOBSTRUCT(__VSF_MFOREACH_I)()(__MACRO, __MACRO_LAST, __VA_ARGS__) |
#define __VSF_MFOREACH_1 | ( | __MACRO, | |
__MACRO_LAST, | |||
__X, | |||
... | |||
) | __MACRO_LAST(__X) |
#define __VSF_MFOREACH_I | ( | ) | __VSF_MFOREACH |
#define VSF_MFOREACH_EX | ( | __MACRO, | |
__MACRO_LAST, | |||
... | |||
) | __VSF_MEXPAND(__VSF_MFOREACH(__MACRO, __MACRO_LAST, __VA_ARGS__)) |
#define VSF_MFOREACH | ( | __MACRO, | |
... | |||
) | VSF_MFOREACH_EX(__MACRO, __MACRO, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG1 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__X, | |||
... | |||
) | VSF_MCAT2(__VSF_MFOREACH_ARG1_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __X, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG1_0 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__X, | |||
... | |||
) | __MACRO(__ARG0, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG1_I)()(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG1_1 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__X, | |||
... | |||
) | __MACRO_LAST(__ARG0, __X) |
#define __VSF_MFOREACH_ARG1_I | ( | ) | __VSF_MFOREACH_ARG1 |
#define VSF_MFOREACH_ARG1_EX | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
... | |||
) | __VSF_MEXPAND(__VSF_MFOREACH_ARG1(__MACRO, __MACRO_LAST, __ARG0, __VA_ARGS__)) |
#define VSF_MFOREACH_ARG1 | ( | __MACRO, | |
__ARG0, | |||
... | |||
) | VSF_MFOREACH_ARG1_EX(__MACRO, __MACRO, __ARG0, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG2 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__X, | |||
... | |||
) | VSF_MCAT2(__VSF_MFOREACH_ARG2_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __X, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG2_0 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__X, | |||
... | |||
) | __MACRO(__ARG0, __ARG1, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG2_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG2_1 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__X, | |||
... | |||
) | __MACRO_LAST(__ARG0, __ARG1, __X) |
#define __VSF_MFOREACH_ARG2_I | ( | ) | __VSF_MFOREACH_ARG2 |
#define VSF_MFOREACH_ARG2_EX | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
... | |||
) | __VSF_MEXPAND(__VSF_MFOREACH_ARG2(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __VA_ARGS__)) |
#define VSF_MFOREACH_ARG2 | ( | __MACRO, | |
__ARG0, | |||
__ARG1, | |||
... | |||
) | VSF_MFOREACH_ARG2_EX(__MACRO, __MACRO, __ARG0, __ARG1, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG3 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__ARG2, | |||
__X, | |||
... | |||
) | VSF_MCAT2(__VSF_MFOREACH_ARG3_, VSF_MISEMPTY(__VA_ARGS__))(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __X, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG3_0 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__ARG2, | |||
__X, | |||
... | |||
) | __MACRO(__ARG0, __ARG1, __ARG2, __X) __VSF_MOBSTRUCT(__VSF_MFOREACH_ARG3_I)()(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__) |
#define __VSF_MFOREACH_ARG3_1 | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__ARG2, | |||
__X, | |||
... | |||
) | __MACRO_LAST(__ARG0, __ARG1, __ARG2, __X) |
#define __VSF_MFOREACH_ARG3_I | ( | ) | __VSF_MFOREACH_ARG3 |
#define VSF_MFOREACH_ARG3_EX | ( | __MACRO, | |
__MACRO_LAST, | |||
__ARG0, | |||
__ARG1, | |||
__ARG2, | |||
... | |||
) | __VSF_MEXPAND(__VSF_MFOREACH_ARG3(__MACRO, __MACRO_LAST, __ARG0, __ARG1, __ARG2, __VA_ARGS__)) |
#define VSF_MFOREACH_ARG3 | ( | __MACRO, | |
__ARG0, | |||
__ARG1, | |||
__ARG2, | |||
... | |||
) | VSF_MFOREACH_ARG3_EX(__MACRO, __MACRO, __ARG0, __ARG1, __ARG2, __VA_ARGS__) |