The BOOST_PP_LIST_REST_N_D macro expands to a list of all but the first count elements of a list.
It reenters BOOST_PP_WHILE with maximum efficiency.
Usage
BOOST_PP_LIST_REST_N_D(d, count, list)
Arguments
- d
-
The next available BOOST_PP_WHILE iteration.
- count
-
The number of elements to remove from the beginning of list.
- list
-
The list from which the elements are extracted.
Remarks
This macro removes count elements from the beginning of list and returns the remainder as a list
See Also
Requirements
Sample Code
#include <boost/preprocessor/list/fold_right.hpp>
#include <boost/preprocessor/list/rest_n.hpp>
#define L1 (a, (b, (c, (d, BOOST_PP_NIL))))
#define L2 (L1, (L1, (L1, BOOST_PP_NIL)))
#define OP(d, state, x) (BOOST_PP_LIST_REST_N_D(d, 2, x), state)
BOOST_PP_LIST_FOLD_RIGHT(OP, BOOST_PP_NIL, L2)
/*
expands to...
((c, (d, BOOST_PP_NIL)), ((c, (d, BOOST_PP_NIL)),
((c, (d, BOOST_PP_NIL)), BOOST_PP_NIL)))
*/