QuISP
Loading...
Searching...
No Matches
macro_utils.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define VA_ARGS_SIZE(...)
 
#define INDEX_REV_SEQ()
 
#define VA_ARGS_SIZE_IMPL(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10, N, ...)
 
#define VA_ARGS_SIZE_AUX(...)
 
#define CONCAT_AUX(x, y)
 
#define CONCAT(x, y)
 
#define FOLD_VA_ARGS_AUX_1(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_2(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_3(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_4(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_5(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_6(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_7(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_8(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_9(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS_AUX_10(FUNC, ARG1, ...)
 
#define FOLD_VA_ARGS(FUNC, ...)
 
#define CONCAT_ID(x)
 
#define CONCAT_ID_WITH_UNDERBAR(...)
 
#define INSTRUCTION_TYPE_ALIAS(...)
 

Macro Definition Documentation

◆ CONCAT

#define CONCAT ( x,
y )
Value:
#define CONCAT_AUX(x, y)
Definition macro_utils.h:10

◆ CONCAT_AUX

#define CONCAT_AUX ( x,
y )
Value:
x##y

◆ CONCAT_ID

#define CONCAT_ID ( x)
Value:
x##_

◆ CONCAT_ID_WITH_UNDERBAR

#define CONCAT_ID_WITH_UNDERBAR ( ...)
Value:
FOLD_VA_ARGS(CONCAT_ID, __VA_ARGS__)
#define CONCAT_ID(x)
Definition macro_utils.h:24
#define FOLD_VA_ARGS(FUNC,...)
Definition macro_utils.h:22

◆ FOLD_VA_ARGS

#define FOLD_VA_ARGS ( FUNC,
... )
Value:
CONCAT(FOLD_VA_ARGS_AUX_, VA_ARGS_SIZE(__VA_ARGS__))(FUNC, __VA_ARGS__)
#define CONCAT(x, y)
Definition macro_utils.h:11
#define VA_ARGS_SIZE(...)
Definition macro_utils.h:4

◆ FOLD_VA_ARGS_AUX_1

#define FOLD_VA_ARGS_AUX_1 ( FUNC,
ARG1,
... )
Value:
FUNC(ARG1)

◆ FOLD_VA_ARGS_AUX_10

#define FOLD_VA_ARGS_AUX_10 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_9(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_9(FUNC, ARG1,...)
Definition macro_utils.h:20

◆ FOLD_VA_ARGS_AUX_2

#define FOLD_VA_ARGS_AUX_2 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_1(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_1(FUNC, ARG1,...)
Definition macro_utils.h:12

◆ FOLD_VA_ARGS_AUX_3

#define FOLD_VA_ARGS_AUX_3 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_2(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_2(FUNC, ARG1,...)
Definition macro_utils.h:13

◆ FOLD_VA_ARGS_AUX_4

#define FOLD_VA_ARGS_AUX_4 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_3(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_3(FUNC, ARG1,...)
Definition macro_utils.h:14

◆ FOLD_VA_ARGS_AUX_5

#define FOLD_VA_ARGS_AUX_5 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_4(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_4(FUNC, ARG1,...)
Definition macro_utils.h:15

◆ FOLD_VA_ARGS_AUX_6

#define FOLD_VA_ARGS_AUX_6 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_5(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_5(FUNC, ARG1,...)
Definition macro_utils.h:16

◆ FOLD_VA_ARGS_AUX_7

#define FOLD_VA_ARGS_AUX_7 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_6(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_6(FUNC, ARG1,...)
Definition macro_utils.h:17

◆ FOLD_VA_ARGS_AUX_8

#define FOLD_VA_ARGS_AUX_8 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_7(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_7(FUNC, ARG1,...)
Definition macro_utils.h:18

◆ FOLD_VA_ARGS_AUX_9

#define FOLD_VA_ARGS_AUX_9 ( FUNC,
ARG1,
... )
Value:
CONCAT(FUNC(ARG1), FOLD_VA_ARGS_AUX_8(FUNC, __VA_ARGS__))
#define FOLD_VA_ARGS_AUX_8(FUNC, ARG1,...)
Definition macro_utils.h:19

◆ INDEX_REV_SEQ

#define INDEX_REV_SEQ ( )
Value:
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0

◆ INSTRUCTION_TYPE_ALIAS

#define INSTRUCTION_TYPE_ALIAS ( ...)
Value:
CONCAT(INSTR_, CONCAT_ID_WITH_UNDERBAR(__VA_ARGS__))
#define CONCAT_ID_WITH_UNDERBAR(...)
Definition macro_utils.h:26

◆ VA_ARGS_SIZE

#define VA_ARGS_SIZE ( ...)
Value:
#define VA_ARGS_SIZE_AUX(...)
Definition macro_utils.h:8
#define INDEX_REV_SEQ()
Definition macro_utils.h:6

◆ VA_ARGS_SIZE_AUX

#define VA_ARGS_SIZE_AUX ( ...)
Value:
VA_ARGS_SIZE_IMPL(__VA_ARGS__)
#define VA_ARGS_SIZE_IMPL(ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7, ARG8, ARG9, ARG10, N,...)
Definition macro_utils.h:7

◆ VA_ARGS_SIZE_IMPL

#define VA_ARGS_SIZE_IMPL ( ARG1,
ARG2,
ARG3,
ARG4,
ARG5,
ARG6,
ARG7,
ARG8,
ARG9,
ARG10,
N,
... )
Value:
N