|
Boost Users : |
Subject: Re: [Boost-users] BOOST_PP_SEQ_ENUM troubles
From: Mathias Gaunard (mathias.gaunard_at_[hidden])
Date: 2016-07-07 12:19:16
On 6 July 2016 at 22:27, Cherotek Music <cherotek_at_[hidden]> wrote:
> Hi,
> I'm trying to make a macro chain that expands something like this
>
> *A, B, C*
>
> into 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 list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net