pputl  0.2.1
pputl Preprocessor Utilities
Macros
tuple

Macros

#define PPUTL_TUPLE_ARGS(tup)   PPUTL_TUPLE_ARGS_RETURN tup
 
#define PPUTL_TUPLE_CAT(...)   PPUTL_TUPLE_DETAIL_CAT_REDUCE(PPUTL_TUPLE_DETAIL_CAT_REDUCER, (), __VA_ARGS__)
 
#define PPUTL_TUPLE_CHK(...)   PPUTL_DETAIL_TUPLE_CHK_X(__VA_ARGS__)
 
#define PPUTL_TUPLE_ELEM(idx, tup)   PPUTL_CHOOSE(idx) tup
 
#define PPUTL_TUPLE_SIZE(tup)   PPUTL_NARGS tup
 

Detailed Description

Macro Definition Documentation

◆ PPUTL_TUPLE_ARGS

#define PPUTL_TUPLE_ARGS (   tup)    PPUTL_TUPLE_ARGS_RETURN tup

returns tuple elements as args

#define TUP (3, 2, 1)
PPUTL_AT(0, PPUTL_TUPLE_ARGS(TUP)) // 3

◆ PPUTL_TUPLE_CAT

#define PPUTL_TUPLE_CAT (   ...)    PPUTL_TUPLE_DETAIL_CAT_REDUCE(PPUTL_TUPLE_DETAIL_CAT_REDUCER, (), __VA_ARGS__)

concatenates [0, 256) tuples into one tuple (size [0, 256))

◆ PPUTL_TUPLE_CHK

#define PPUTL_TUPLE_CHK (   ...)    PPUTL_DETAIL_TUPLE_CHK_X(__VA_ARGS__)

checks if VA_ARGS is a tuple using VA_OPT

◆ PPUTL_TUPLE_ELEM

#define PPUTL_TUPLE_ELEM (   idx,
  tup 
)    PPUTL_CHOOSE(idx) tup

chooses tuple element at index idx [0, 256)

Parameters
idx- index [0, 256)
tup- tuple

◆ PPUTL_TUPLE_SIZE

#define PPUTL_TUPLE_SIZE (   tup)    PPUTL_NARGS tup

number of elements within a tuple [0, 256)