#include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/list/cat.hpp> #include <boost/preprocessor/list/fold_left.hpp> #define LISTS \ ((a, (b, BOOST_PP_NIL)), \ ((c, (d, BOOST_PP_NIL)), \ ((e, (f, BOOST_PP_NIL)), \ BOOST_PP_NIL))) \ /**/ #define OP(d, state, x) BOOST_PP_CAT(state, BOOST_PP_LIST_CAT_D(d, x)) BOOST_PP_LIST_FOLD_LEFT(OP, _, LISTS) // expands to _abcdef
Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at www.boost.org/LICENSE_1_0.txt)