Macro Index
$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · M · N · O · P · Q · R · S · T · U · V · W · X · Y · Z
S
FBEXT_PP_SEQ_CAT
FBEXT_PP_SEQ_FOREACH
fbextPP_SeqCat
fbextPP_SeqCatWithGlue
fbextPP_SeqElem
fbextPP_SeqEnum
fbextPP_SeqFirstN
fbextPP_SeqFoldLeft
fbextPP_SeqFoldRight
fbextPP_SeqForEach
fbextPP_SeqForEachI
fbextPP_SeqFromValue
fbextPP_SeqHead
fbextPP_SeqInsert
fbextPP_SeqPopBack
fbextPP_SeqPopFront
fbextPP_SeqPushBack
fbextPP_SeqPushFront
fbextPP_SeqRestN
fbextPP_SeqReverse
fbextPP_SeqSize
fbextPP_SeqTail
fbextPP_SeqToTuple
fbextPP_SeqTransform
FBEXT_SHAREDARRAY
fbext_SignedIntegralTypes
fbextPP_Struct
fbextPP_StructMember
fbextPP_StructNew
fbextPP_StructSetMember
fbextPP_StructSetMembers
fbextPP_Sub
FBEXT_SWAP, ext.misc
# define FBEXT_PP_SEQ_CAT(seq) fbextPP_SeqCat(seq)
is deprecated, use fbextPP_SeqCat instead.
# define FBEXT_PP_SEQ_FOREACH(m_,
data_,
seq_) fbextPP_SeqForEach(m_, data_, seq_)
is deprecated, use fbextPP_SeqForEach instead.
# define fbextPP_SeqCat(
   seq
) fbextPP_If(fbextPP_Dec(fbextPP_SeqSize(seq)), fbextPP_SeqCat_Multi, fbextPP_SeqCat_Single )(seq)
expands to a concatenation of all of the elements in the sequence seq.
# define fbextPP_SeqCatWithGlue(
   seq,
   glue
) FBEXT_PP_TUPLE_ELEM(2, 0, FBEXT_PP_SEQ_FOLDLEFT(fbextPP_SeqCatWithGlue_O, (FBEXT_PP_SEQ_HEAD(seq), glue), FBEXT_PP_SEQ_TAIL(seq)))
expands to the concatenation of all of the elements of the sequence seq, joined together by glue.
# define fbextPP_SeqElem(i,
seq) fbextPP_SeqElem__I(fbextPP_SeqElem__##i seq(__))
Expands to the value of a certain element in a sequence.
# define fbextPP_SeqEnum(
   seq
) FBEXT_PP_SEQ_FOREACHI(fbextPP_SeqEnum__M, FBEXT_PP_DEC(FBEXT_PP_SEQ_SIZE(seq)), seq)
Enumerates the elements of a sequence.
# define fbextPP_SeqFirstN(
   n,
   seq
) FBEXT_PP_SEQ_FOLDLEFT( fbextPP_SeqFirstN__M, FBEXT_PP_EMPTY(), FBEXT_PP_CAT(fbextPP_TupleElem__2__0, FBEXT_PP_SEQ_SPLIT(n, seq(__))) )
expands to a sequence of the first n number of elements of the sequence seq.
# define fbextPP_SeqFoldLeft(
   op,
   state,
   seq
) fbextPP_Repeat(fbextPP_SeqSize(seq), fbextPP_SeqFoldLeft__L, op) state fbextPP_Repeat(fbextPP_SeqSize(seq), fbextPP_SeqFoldLeft__R, seq)
Expands a macro returning a new state for each element in a sequence.
# define fbextPP_SeqFoldRight(
   op,
   state,
   seq
) FBEXT_PP_REPEAT(FBEXT_PP_SEQ_SIZE(SEQ), fbextPP_SeqFoldRight__L, op) state FBEXT_PP_SEQ_FOREACHI(fbextPP_SeqFoldRight__R, seq, seq)
Expands a macro returning a new state for each element in a sequence.
# define fbextPP_SeqForEach(
   m_,
   data_,
   seq_
) fbextPP_Repeat(fbextPP_SeqSize(seq_), fbextPP_SeqForEach_M, (m_, data_, seq_))
expands to repeated expansions of the user-defined macro m_, passing them each element of the sequence seq_, in order, along with user data data_.
# define fbextPP_SeqForEachI(
   m,
   data,
   seq
) FBEXT_PP_REPEAT(FBEXT_PP_SEQ_SIZE(seq), fbextPP_SeqForEachI__M, (m)(data)(seq))
Expands a macro for every element in a sequence.
# define fbextPP_SeqFromValue(n,
v) _fbextPP_SeqFromValue_##n(v)
expands to a sequence of n number of elements all of the value v.
# define fbextPP_SeqHead(
   seq
) FBEXT_PP_CAT(fbextPP_SeqHead__F, FBEXT_PP_CAT(fbextPP_TupleElem__2__0, FBEXT_PP_SEQ_SPLIT(1, seq(__))))
Returns the first element in a sequence.
# define fbextPP_SeqInsert(
   seq,
   i,
   elem
) FBEXT_PP_CAT(FBEXT_PP_IF(i, FBEXT_PP_SEQ_FIRSTN, fbextPP_TupleEat__2)(i, seq)(elem), FBEXT_PP_SEQ_RESTN(i, seq))
Inserts an element before a certain position in a sequence.
# define fbextPP_SeqPopBack(
   seq
) FBEXT_PP_SEQ_FIRSTN(FBEXT_PP_DEC(FBEXT_PP_SEQ_SIZE(seq)), seq)
Removes the last element of a sequence.
# define fbextPP_SeqPopFront(seq) FBEXT_PP_SEQ_RESTN(1, seq)
Removes the first element in a sequence.
# define fbextPP_SeqPushBack(seq,
x) seq(x)
Adds an element to the end of a sequence.
# define fbextPP_SeqPushFront(seq,
x) (x)##seq
Adds an element to the beginning of a sequence.
# define fbextPP_SeqRestN(
   n,
   seq
) FBEXT_PP_SEQ_FOLDLEFT( fbextPP_SeqRestN__M, FBEXT_PP_EMPTY(), FBEXT_PP_CAT(fbextPP_TupleElem__2__1, FBEXT_PP_SEQ_SPLIT(FBEXT_PP_INC(n), (__)seq)) )
Removes a number of leading elements from a sequence.
# define fbextPP_SeqReverse(
   seq
) FBEXT_PP_SEQ_FOLDRIGHT( fbextPP_SeqReverse__M, FBEXT_PP_EMPTY(), seq)
Reverses the elements of a sequence.
# define fbextPP_SeqSize(
   seq
) FBEXT_PP_CAT(_fbextPP_SeqSize_, _fbextPP_SeqSize_0 seq)
expands to an integer literal number representing the count of elements in a sequence.
# define fbextPP_SeqTail(seq) FBEXT_PP_SEQ_RESTN(1, seq)
Returns the tail end of a sequence.
# define fbextPP_SeqToTuple(seq) (FBEXT_PP_SEQ_ENUM(seq))
Converts a sequence into a tuple.
# define fbextPP_SeqTransform(
   m,
   data,
   seq
) FBEXT_PP_SEQ_TAIL(FBEXT_PP_TUPLE_ELEM(3, 2, FBEXT_PP_SEQ_FOLDLEFT(fbextPP_SeqTransform_O, (m, data, (__)), seq)))
Transforms the elements of a sequence.
# define fbext_SignedIntegralTypes(
   
) (((byte)))(((short)))(((integer)))(((longint)))
A preprocessor sequence of signed integral types.
# macro fbextPP_Struct(sname_,
mdecls_)
defines a new preprocessor struct sname_ with members mdecls_.
# define fbextPP_StructMember(
   struct_,
   member_
) _fbextPP_StructMember_aux(fbextPP_TupleRemParens(2, struct_), member_)
expands to the value of the member member_ of the struct struct_.
expands to an instance of the struct sname_.
# define fbextPP_StructSetMember(
   struct_,
   member_,
   value_
) _fbextPP_StructSetMember_aux(fbextPP_TupleRemParens(2, struct_), member_, value_)
expands to a copy of a struct struct_ with member member_ set to value_.
# define fbextPP_StructSetMembers(
   struct_,
   memvalues_
) fbextPP_SeqFoldLeft(_fbextPP_StructSetMembers_O, struct_, memvalues_)
# define fbextPP_Sub(
   lhs,
   rhs
) FBEXT_PP_REPEAT(rhs, fbextPP_Sub__L, __) lhs FBEXT_PP_REPEAT(rhs, fbextPP_Sub__R, __)
Subtracts one number from another.
# macro FBEXT_SWAP(a,
b)
Type independant value swapper.