MessagePack for C++
Macros
transform.hpp File Reference
#include <msgpack/preprocessor/config/config.hpp>
#include <msgpack/preprocessor/list/fold_right.hpp>
#include <msgpack/preprocessor/tuple/elem.hpp>
#include <msgpack/preprocessor/tuple/rem.hpp>

Go to the source code of this file.

Macros

#define MSGPACK_PP_LIST_TRANSFORM(op, data, list)   MSGPACK_PP_LIST_TRANSFORM_I(op, data, list)
 
#define MSGPACK_PP_LIST_TRANSFORM_I(op, data, list)   MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
 
#define MSGPACK_PP_LIST_TRANSFORM_O(d, odr, elem)   MSGPACK_PP_LIST_TRANSFORM_O_I(d, MSGPACK_PP_TUPLE_REM_3 odr, elem)
 
#define MSGPACK_PP_LIST_TRANSFORM_O_I(d, im, elem)   MSGPACK_PP_LIST_TRANSFORM_O_D(d, im, elem)
 
#define MSGPACK_PP_LIST_TRANSFORM_O_D(d, op, data, res, elem)   (op, data, (op(d, data, elem), res))
 
#define MSGPACK_PP_LIST_TRANSFORM_D(d, op, data, list)   MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list)
 
#define MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list)   MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
 

Macro Definition Documentation

#define MSGPACK_PP_LIST_TRANSFORM (   op,
  data,
  list 
)    MSGPACK_PP_LIST_TRANSFORM_I(op, data, list)
#define MSGPACK_PP_LIST_TRANSFORM_D (   d,
  op,
  data,
  list 
)    MSGPACK_PP_LIST_TRANSFORM_D_I(d, op, data, list)
#define MSGPACK_PP_LIST_TRANSFORM_D_I (   d,
  op,
  data,
  list 
)    MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
#define MSGPACK_PP_LIST_TRANSFORM_I (   op,
  data,
  list 
)    MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_TRANSFORM_O, (op, data, MSGPACK_PP_NIL), list))
#define MSGPACK_PP_LIST_TRANSFORM_O (   d,
  odr,
  elem 
)    MSGPACK_PP_LIST_TRANSFORM_O_I(d, MSGPACK_PP_TUPLE_REM_3 odr, elem)
#define MSGPACK_PP_LIST_TRANSFORM_O_D (   d,
  op,
  data,
  res,
  elem 
)    (op, data, (op(d, data, elem), res))
#define MSGPACK_PP_LIST_TRANSFORM_O_I (   d,
  im,
  elem 
)    MSGPACK_PP_LIST_TRANSFORM_O_D(d, im, elem)