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 |
is deprecated, use fbextPP_SeqCat instead.
# define FBEXT_PP_SEQ_CAT( seq ) fbextPP_SeqCat(seq)
is deprecated, use fbextPP_SeqForEach instead.
# define FBEXT_PP_SEQ_FOREACH( m_, data_, seq_ ) fbextPP_SeqForEach(m_, data_, seq_)
expands to a concatenation of all of the elements in the sequence seq.
# define fbextPP_SeqCat( seq ) fbextPP_If(fbextPP_Dec(fbextPP_SeqSize(seq)), fbextPP_SeqCat_Multi, fbextPP_SeqCat_Single )(seq)
expands to the concatenation of all of the elements of the sequence seq, joined together by glue.
# 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 value of a certain element in a sequence.
# define fbextPP_SeqElem( i, seq ) fbextPP_SeqElem__I(fbextPP_SeqElem__##i seq(__))
Enumerates the elements of a sequence.
# define fbextPP_SeqEnum( seq ) FBEXT_PP_SEQ_FOREACHI(fbextPP_SeqEnum__M, FBEXT_PP_DEC(FBEXT_PP_SEQ_SIZE(seq)), seq)
expands to a sequence of the first n number of elements of the sequence seq.
# 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 a macro returning a new state for each element in a sequence.
# 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 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_SeqForEach( m_, data_, seq_ ) fbextPP_Repeat(fbextPP_SeqSize(seq_), fbextPP_SeqForEach_M, (m_, data_, seq_))
Expands a macro for every element in a sequence.
# define fbextPP_SeqForEachI( m, data, seq ) FBEXT_PP_REPEAT(FBEXT_PP_SEQ_SIZE(seq), fbextPP_SeqForEachI__M, (m)(data)(seq))
expands to a sequence of n number of elements all of the value v.
# define fbextPP_SeqFromValue( n, v ) _fbextPP_SeqFromValue_##n(v)
Returns the first element in a sequence.
# define fbextPP_SeqHead( seq ) FBEXT_PP_CAT(fbextPP_SeqHead__F, FBEXT_PP_CAT(fbextPP_TupleElem__2__0, FBEXT_PP_SEQ_SPLIT(1, seq(__))))
Inserts an element before a certain position 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))
Removes the last element of a sequence.
# define fbextPP_SeqPopBack( seq ) FBEXT_PP_SEQ_FIRSTN(FBEXT_PP_DEC(FBEXT_PP_SEQ_SIZE(seq)), seq)
Removes the first element in a sequence.
# define fbextPP_SeqPopFront( seq ) FBEXT_PP_SEQ_RESTN(1, seq)
Adds an element to the end of a sequence.
# define fbextPP_SeqPushBack( seq, x ) seq(x)
Adds an element to the beginning of a sequence.
# define fbextPP_SeqPushFront( seq, x ) (x)##seq
Removes a number of leading elements from 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)) )
Reverses the elements of a sequence.
# define fbextPP_SeqReverse( seq ) FBEXT_PP_SEQ_FOLDRIGHT( fbextPP_SeqReverse__M, FBEXT_PP_EMPTY(), seq)
expands to an integer literal number representing the count of elements in a sequence.
# define fbextPP_SeqSize( seq ) FBEXT_PP_CAT(_fbextPP_SeqSize_, _fbextPP_SeqSize_0 seq)
Returns the tail end of a sequence.
# define fbextPP_SeqTail( seq ) FBEXT_PP_SEQ_RESTN(1, seq)
Converts a sequence into a tuple.
# define fbextPP_SeqToTuple( seq ) (FBEXT_PP_SEQ_ENUM(seq))
Transforms the elements of a sequence.
# 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)))
A preprocessor sequence of signed integral types.
# define fbext_SignedIntegralTypes( ) (((byte)))(((short)))(((integer)))(((longint)))
defines a new preprocessor struct sname_ with members mdecls_.
# macro fbextPP_Struct( sname_, mdecls_ )
expands to the value of the member member_ of the struct struct_.
# define fbextPP_StructMember( struct_, member_ ) _fbextPP_StructMember_aux(fbextPP_TupleRemParens(2, struct_), member_)
expands to a copy of a struct struct_ with member member_ set to value_.
# define fbextPP_StructSetMember( struct_, member_, value_ ) _fbextPP_StructSetMember_aux(fbextPP_TupleRemParens(2, struct_), member_, value_)
# define fbextPP_StructSetMembers( struct_, memvalues_ ) fbextPP_SeqFoldLeft(_fbextPP_StructSetMembers_O, struct_, memvalues_)
Subtracts one number from another.
# define fbextPP_Sub( lhs, rhs ) FBEXT_PP_REPEAT(rhs, fbextPP_Sub__L, __) lhs FBEXT_PP_REPEAT(rhs, fbextPP_Sub__R, __)
Type independant value swapper.
# macro FBEXT_SWAP( a, b )