filter.hpp File Reference
`#include <msgpack/preprocessor/config/config.hpp>`
`#include <msgpack/preprocessor/control/if.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_FILTER(pred, data, list) MSGPACK_PP_LIST_FILTER_I(pred, data, list)
#define | MSGPACK_PP_LIST_FILTER_I(pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))
#define | MSGPACK_PP_LIST_FILTER_O(d, pdr, elem) MSGPACK_PP_LIST_FILTER_O_I(d, MSGPACK_PP_TUPLE_REM_3 pdr, elem)
#define | MSGPACK_PP_LIST_FILTER_O_I(d, im, elem) MSGPACK_PP_LIST_FILTER_O_D(d, im, elem)
#define | MSGPACK_PP_LIST_FILTER_O_D(d, pred, data, res, elem) (pred, data, MSGPACK_PP_IF(pred##(d, data, elem), (elem, res), res))
#define | MSGPACK_PP_LIST_FILTER_D(d, pred, data, list) MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list)
#define | MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list) MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))

## Macro Definition Documentation

## MSGPACK_PP_LIST_FILTER

#define MSGPACK_PP_LIST_FILTER | ( |  | pred,
|  |  | data,
|  |  | list
| ) |  | MSGPACK_PP_LIST_FILTER_I(pred, data, list)

## MSGPACK_PP_LIST_FILTER_D

#define MSGPACK_PP_LIST_FILTER_D | ( |  | d,
|  |  | pred,
|  |  | data,
|  |  | list
| ) |  | MSGPACK_PP_LIST_FILTER_D_I(d, pred, data, list)

## MSGPACK_PP_LIST_FILTER_D_I

#define MSGPACK_PP_LIST_FILTER_D_I | ( |  | d,
|  |  | pred,
|  |  | data,
|  |  | list
| ) |  | MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT_ ## d(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))

## MSGPACK_PP_LIST_FILTER_I

#define MSGPACK_PP_LIST_FILTER_I | ( |  | pred,
|  |  | data,
|  |  | list
| ) |  | MSGPACK_PP_TUPLE_ELEM(3, 2, MSGPACK_PP_LIST_FOLD_RIGHT(MSGPACK_PP_LIST_FILTER_O, (pred, data, MSGPACK_PP_NIL), list))

## MSGPACK_PP_LIST_FILTER_O

#define MSGPACK_PP_LIST_FILTER_O | ( |  | d,
|  |  | pdr,
|  |  | elem
| ) |  | MSGPACK_PP_LIST_FILTER_O_I(d, MSGPACK_PP_TUPLE_REM_3 pdr, elem)

## MSGPACK_PP_LIST_FILTER_O_D

#define MSGPACK_PP_LIST_FILTER_O_D | ( |  | d,
|  |  | pred,
|  |  | data,
|  |  | res,
|  |  | elem
| ) |  | (pred, data, MSGPACK_PP_IF(pred##(d, data, elem), (elem, res), res))

## MSGPACK_PP_LIST_FILTER_O_I

#define MSGPACK_PP_LIST_FILTER_O_I | ( |  | d,
|  |  | im,
|  |  | elem
| ) |  | MSGPACK_PP_LIST_FILTER_O_D(d, im, elem)