Github User Fetcher 1.0.0
C Application with Server and GUI
Loading...
Searching...
No Matches
preprocess.h File Reference

Go to the source code of this file.

Macros

#define CR_NOOP   do {} while (0)
 
#define CR_NOTHROW
 
#define CR_EXPAND(x)   x
 
#define CR_IDENTITY(...)   __VA_ARGS__
 
#define CR_EMPTY()
 
#define CR_DEFER(x)   x CR_EMPTY()
 
#define CR_OBSTRUCT(...)   __VA_ARGS__ CR_DEFER(CR_EMPTY)()
 
#define CR_EAT(...)   __VA_ARGS__
 
#define CRI_DEFER1(x)   CR_DEFER(x)
 
#define CRI_DEFER2(x)   CR_DEFER(CRI_DEFER1)(x)
 
#define CRI_DEFER3(x)   CR_DEFER(CRI_DEFER2)(x)
 
#define CRI_DEFER4(x)   CR_DEFER(CRI_DEFER3)(x)
 
#define CRI_OBSTRUCT1(...)   __VA_ARGS__ CRI_DEFER4(CR_EMPTY)()
 
#define CRI_OBSTRUCT2(...)   __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT1)()
 
#define CRI_OBSTRUCT3(...)   __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT2)()
 
#define CRI_OBSTRUCT_N(...)   __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT3)()
 
#define CR_EVAL(...)   CR_EVAL1(CR_EVAL1(CR_EVAL1(CR_EVAL1(__VA_ARGS__))))
 
#define CR_EVAL1(...)   CR_EVAL2(CR_EVAL2(CR_EVAL2(CR_EVAL2(__VA_ARGS__))))
 
#define CR_EVAL2(...)   CR_EVAL3(CR_EVAL3(CR_EVAL3(CR_EVAL3(__VA_ARGS__))))
 
#define CR_EVAL3(...)   CR_IDENTITY(__VA_ARGS__)
 
#define CR_STR(...)   CR_EXPAND(CR_STR_(__VA_ARGS__))
 
#define CR_STR_(...)   #__VA_ARGS__
 
#define CR_VA_TAIL(...)   CR_EXPAND(CR_VA_TAIL_HELPER(CR_VA_TAIL_SELECT(__VA_ARGS__), __VA_ARGS__))
 
#define CR_VA_TAIL_HELPER(N, ...)   CR_EXPAND(CR_VA_TAIL_HELPER_(N, __VA_ARGS__))
 
#define CR_VA_TAIL_HELPER_(N, ...)   CR_EXPAND(CR_VA_TAIL_HELPER_ ## N(__VA_ARGS__))
 
#define CR_VA_TAIL_HELPER_1(Head)
 
#define CR_VA_TAIL_HELPER_2(Head, ...)   __VA_ARGS__
 
#define CR_VA_HEAD(...)   CR_EXPAND(CR_VA_HEAD_HELPER(CR_VA_TAIL_SELECT(__VA_ARGS__), __VA_ARGS__))
 
#define CR_VA_HEAD_HELPER(N, ...)   CR_EXPAND(CR_VA_HEAD_HELPER_(N, __VA_ARGS__))
 
#define CR_VA_HEAD_HELPER_(N, ...)   CR_EXPAND(CR_VA_HEAD_HELPER_ ## N(__VA_ARGS__))
 
#define CR_VA_HEAD_HELPER_1(Head)   Head
 
#define CR_VA_HEAD_HELPER_2(Head, ...)   Head
 
#define CR_VA_TAIL_SELECT(...)
 
#define CR_VA_TAIL_SELECT64( _01, _02, _03, _04, _05, _06, _07, _08, _09, _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, X, ...)   X
 
#define CR_CONCAT_E(A, B)   CR_CONCAT(CR_EXPAND(A), CR_EXPAND(B))
 
#define CR_CONCAT(A, B)   CR_CONCAT2(A, B)
 
#define CR_CONCAT2(A, B)   CR_CONCAT3(A, B)
 
#define CR_CONCAT3(A, B)   A ## B
 
#define CRI_IF_DEFINED__(M, N)   M ## N
 
#define CRI_IF_DEFINED_(M, N)   CRI_IF_DEFINED__(M, N)
 
#define CRI_IF_DEFINED(M, Then, ThenParams, Else, ElseParams)   CRI_IF_DEFINED_(CRI_IF_DEFINED_, CR_VA_TAIL_SELECT(M))(Then, ThenParams, Else, ElseParams)
 
#define CRI_IF_DEFINED_1(Then, ThenParams, Else, ElseParams)   CRI_DEFER2(Else) ElseParams
 
#define CRI_IF_DEFINED_2(Then, ThenParams, Else, ElseParams)   CRI_DEFER2(Then) ThenParams
 
#define CRI_IF_DEFINED_NODEFER__(M, N)   M ## N
 
#define CRI_IF_DEFINED_NODEFER_(M, N)   CRI_IF_DEFINED_NODEFER__(M, N)
 
#define CRI_IF_DEFINED_NODEFER(M, Then, ThenParams, Else, ElseParams)   CRI_IF_DEFINED_NODEFER_(CRI_IF_DEFINED_NODEFER_, CR_VA_TAIL_SELECT(M))(Then, ThenParams, Else, ElseParams)
 
#define CRI_IF_DEFINED_NODEFER_1(Then, ThenParams, Else, ElseParams)   Else ElseParams
 
#define CRI_IF_DEFINED_NODEFER_2(Then, ThenParams, Else, ElseParams)   Then ThenParams
 

Macro Definition Documentation

◆ CR_CONCAT

#define CR_CONCAT ( A,
B )   CR_CONCAT2(A, B)

Definition at line 95 of file preprocess.h.

◆ CR_CONCAT2

#define CR_CONCAT2 ( A,
B )   CR_CONCAT3(A, B)

Definition at line 96 of file preprocess.h.

◆ CR_CONCAT3

#define CR_CONCAT3 ( A,
B )   A ## B

Definition at line 97 of file preprocess.h.

◆ CR_CONCAT_E

#define CR_CONCAT_E ( A,
B )   CR_CONCAT(CR_EXPAND(A), CR_EXPAND(B))

Definition at line 94 of file preprocess.h.

◆ CR_DEFER

#define CR_DEFER ( x)    x CR_EMPTY()

Definition at line 38 of file preprocess.h.

◆ CR_EAT

#define CR_EAT ( ...)    __VA_ARGS__

Definition at line 41 of file preprocess.h.

◆ CR_EMPTY

#define CR_EMPTY ( )

Definition at line 37 of file preprocess.h.

◆ CR_EVAL

#define CR_EVAL ( ...)    CR_EVAL1(CR_EVAL1(CR_EVAL1(CR_EVAL1(__VA_ARGS__))))

Definition at line 53 of file preprocess.h.

◆ CR_EVAL1

#define CR_EVAL1 ( ...)    CR_EVAL2(CR_EVAL2(CR_EVAL2(CR_EVAL2(__VA_ARGS__))))

Definition at line 54 of file preprocess.h.

◆ CR_EVAL2

#define CR_EVAL2 ( ...)    CR_EVAL3(CR_EVAL3(CR_EVAL3(CR_EVAL3(__VA_ARGS__))))

Definition at line 55 of file preprocess.h.

◆ CR_EVAL3

#define CR_EVAL3 ( ...)    CR_IDENTITY(__VA_ARGS__)

Definition at line 56 of file preprocess.h.

◆ CR_EXPAND

#define CR_EXPAND ( x)    x

Definition at line 35 of file preprocess.h.

◆ CR_IDENTITY

#define CR_IDENTITY ( ...)    __VA_ARGS__

Definition at line 36 of file preprocess.h.

◆ CR_NOOP

#define CR_NOOP   do {} while (0)

Definition at line 27 of file preprocess.h.

◆ CR_NOTHROW

#define CR_NOTHROW

Definition at line 32 of file preprocess.h.

◆ CR_OBSTRUCT

#define CR_OBSTRUCT ( ...)    __VA_ARGS__ CR_DEFER(CR_EMPTY)()

Definition at line 39 of file preprocess.h.

◆ CR_STR

#define CR_STR ( ...)    CR_EXPAND(CR_STR_(__VA_ARGS__))

Definition at line 58 of file preprocess.h.

◆ CR_STR_

#define CR_STR_ ( ...)    #__VA_ARGS__

Definition at line 59 of file preprocess.h.

◆ CR_VA_HEAD

#define CR_VA_HEAD ( ...)    CR_EXPAND(CR_VA_HEAD_HELPER(CR_VA_TAIL_SELECT(__VA_ARGS__), __VA_ARGS__))

Definition at line 68 of file preprocess.h.

◆ CR_VA_HEAD_HELPER

#define CR_VA_HEAD_HELPER ( N,
... )   CR_EXPAND(CR_VA_HEAD_HELPER_(N, __VA_ARGS__))

Definition at line 70 of file preprocess.h.

◆ CR_VA_HEAD_HELPER_

#define CR_VA_HEAD_HELPER_ ( N,
... )   CR_EXPAND(CR_VA_HEAD_HELPER_ ## N(__VA_ARGS__))

Definition at line 71 of file preprocess.h.

◆ CR_VA_HEAD_HELPER_1

#define CR_VA_HEAD_HELPER_1 ( Head)    Head

Definition at line 72 of file preprocess.h.

◆ CR_VA_HEAD_HELPER_2

#define CR_VA_HEAD_HELPER_2 ( Head,
... )   Head

Definition at line 73 of file preprocess.h.

◆ CR_VA_TAIL

#define CR_VA_TAIL ( ...)    CR_EXPAND(CR_VA_TAIL_HELPER(CR_VA_TAIL_SELECT(__VA_ARGS__), __VA_ARGS__))

Definition at line 61 of file preprocess.h.

◆ CR_VA_TAIL_HELPER

#define CR_VA_TAIL_HELPER ( N,
... )   CR_EXPAND(CR_VA_TAIL_HELPER_(N, __VA_ARGS__))

Definition at line 63 of file preprocess.h.

◆ CR_VA_TAIL_HELPER_

#define CR_VA_TAIL_HELPER_ ( N,
... )   CR_EXPAND(CR_VA_TAIL_HELPER_ ## N(__VA_ARGS__))

Definition at line 64 of file preprocess.h.

◆ CR_VA_TAIL_HELPER_1

#define CR_VA_TAIL_HELPER_1 ( Head)

Definition at line 65 of file preprocess.h.

◆ CR_VA_TAIL_HELPER_2

#define CR_VA_TAIL_HELPER_2 ( Head,
... )   __VA_ARGS__

Definition at line 66 of file preprocess.h.

◆ CR_VA_TAIL_SELECT

#define CR_VA_TAIL_SELECT ( ...)
Value:
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
2, 2, 1, _))
#define _(String)
Definition gi18n-lib.h:32
#define CR_VA_TAIL_SELECT64( _01, _02, _03, _04, _05, _06, _07, _08, _09, _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, X,...)
Definition preprocess.h:85
#define CR_EXPAND(x)
Definition preprocess.h:35

Definition at line 75 of file preprocess.h.

75#define CR_VA_TAIL_SELECT(...) \
76 CR_EXPAND(CR_VA_TAIL_SELECT64(__VA_ARGS__, \
77 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
78 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
79 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
80 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
81 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
82 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, \
83 2, 2, 1, _))

◆ CR_VA_TAIL_SELECT64

#define CR_VA_TAIL_SELECT64 ( _01,
_02,
_03,
_04,
_05,
_06,
_07,
_08,
_09,
_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,
X,
... )   X

Definition at line 85 of file preprocess.h.

◆ CRI_DEFER1

#define CRI_DEFER1 ( x)    CR_DEFER(x)

Definition at line 43 of file preprocess.h.

◆ CRI_DEFER2

#define CRI_DEFER2 ( x)    CR_DEFER(CRI_DEFER1)(x)

Definition at line 44 of file preprocess.h.

◆ CRI_DEFER3

#define CRI_DEFER3 ( x)    CR_DEFER(CRI_DEFER2)(x)

Definition at line 45 of file preprocess.h.

◆ CRI_DEFER4

#define CRI_DEFER4 ( x)    CR_DEFER(CRI_DEFER3)(x)

Definition at line 46 of file preprocess.h.

◆ CRI_IF_DEFINED

#define CRI_IF_DEFINED ( M,
Then,
ThenParams,
Else,
ElseParams )   CRI_IF_DEFINED_(CRI_IF_DEFINED_, CR_VA_TAIL_SELECT(M))(Then, ThenParams, Else, ElseParams)

Definition at line 101 of file preprocess.h.

◆ CRI_IF_DEFINED_

#define CRI_IF_DEFINED_ ( M,
N )   CRI_IF_DEFINED__(M, N)

Definition at line 100 of file preprocess.h.

◆ CRI_IF_DEFINED_1

#define CRI_IF_DEFINED_1 ( Then,
ThenParams,
Else,
ElseParams )   CRI_DEFER2(Else) ElseParams

Definition at line 102 of file preprocess.h.

◆ CRI_IF_DEFINED_2

#define CRI_IF_DEFINED_2 ( Then,
ThenParams,
Else,
ElseParams )   CRI_DEFER2(Then) ThenParams

Definition at line 103 of file preprocess.h.

◆ CRI_IF_DEFINED__

#define CRI_IF_DEFINED__ ( M,
N )   M ## N

Definition at line 99 of file preprocess.h.

◆ CRI_IF_DEFINED_NODEFER

#define CRI_IF_DEFINED_NODEFER ( M,
Then,
ThenParams,
Else,
ElseParams )   CRI_IF_DEFINED_NODEFER_(CRI_IF_DEFINED_NODEFER_, CR_VA_TAIL_SELECT(M))(Then, ThenParams, Else, ElseParams)

Definition at line 107 of file preprocess.h.

◆ CRI_IF_DEFINED_NODEFER_

#define CRI_IF_DEFINED_NODEFER_ ( M,
N )   CRI_IF_DEFINED_NODEFER__(M, N)

Definition at line 106 of file preprocess.h.

◆ CRI_IF_DEFINED_NODEFER_1

#define CRI_IF_DEFINED_NODEFER_1 ( Then,
ThenParams,
Else,
ElseParams )   Else ElseParams

Definition at line 108 of file preprocess.h.

◆ CRI_IF_DEFINED_NODEFER_2

#define CRI_IF_DEFINED_NODEFER_2 ( Then,
ThenParams,
Else,
ElseParams )   Then ThenParams

Definition at line 109 of file preprocess.h.

◆ CRI_IF_DEFINED_NODEFER__

#define CRI_IF_DEFINED_NODEFER__ ( M,
N )   M ## N

Definition at line 105 of file preprocess.h.

◆ CRI_OBSTRUCT1

#define CRI_OBSTRUCT1 ( ...)    __VA_ARGS__ CRI_DEFER4(CR_EMPTY)()

Definition at line 48 of file preprocess.h.

◆ CRI_OBSTRUCT2

#define CRI_OBSTRUCT2 ( ...)    __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT1)()

Definition at line 49 of file preprocess.h.

◆ CRI_OBSTRUCT3

#define CRI_OBSTRUCT3 ( ...)    __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT2)()

Definition at line 50 of file preprocess.h.

◆ CRI_OBSTRUCT_N

#define CRI_OBSTRUCT_N ( ...)    __VA_ARGS__ CRI_DEFER4(CRI_OBSTRUCT3)()

Definition at line 51 of file preprocess.h.