Thanks for the suggestion but I still can't get it to work :(#define SEQ_FORMATS BOOST_PP_VARIADIC_TO_SEQ(FORMATS)#define ARG_PAIR(x) {#x, create<x##File>}#define NTH_ARG(z, n, data) ARG_PAIR(BOOST_PP_SEQ_ELEM(n, data))#define ARG_PAIRS BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(SEQ_FORMATS), NTH_ARG, SEQ_FORMATS)gives the following error:test.h:14:63: error: pasting ")" and "File" does not give a valid preprocessing token#define NTH_ARG(z, n, data) ARG_PAIR(BOOST_PP_SEQ_ELEM(n, data))^test.h:13:33: note: in definition of macro ‘ARG_PAIR’#define ARG_PAIR(x) {#x, create<x##File>}We're getting closer thoughOn Thu, Jul 7, 2016 at 6:19 PM, Mathias Gaunard <mathias.gaunard@ens-lyon.org> wrote:_______________________________________________On 6 July 2016 at 22:27, Cherotek Music <cherotek@gmail.com> wrote:Hi,I'm trying to make a macro chain that expands something like thisA, B, Cinto something like this{"A", create<AFile>}, {"B", create<BFile>}, {"C", create<CFile>}This is what I have come up with#define FORMATS A, B, C // Add new formats here#define SEQ_FORMATS BOOST_PP_VARIADIC_TO_SEQ(FORMATS)#define ARG_PAIR(s, data, x) {#x, create<x##File>}#define SEQ_ARG_PAIRS BOOST_PP_SEQ_TRANSFORM(ARG_PAIR, ~, SEQ_FORMATS)#define ARG_PAIRS BOOST_PP_SEQ_ENUM(SEQ_ARG_PAIRS)Use BOOST_PP_ENUM with BOOST_PP_SEQ_SIZE and BOOST_PP_SEQ_ELEM instead of BOOST_PP_SEQ_TRANSFORM+BOOST_PP_SEQ_ENUM.
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users