[mpl] struct definition and mpl sequence in one shot?
Hi! This is a re-post from the boost-users mailing list. I have a problem and I'm not sure how to approach it. Currently my code looks like this: struct Definition { typedef boost::mpl::int_<5> A; typedef boost::mpl::int_<3> B; typedef boost::mpl::int_<6> C; typedef boost::mpl::int_<1> D; typedef boost::mpl::vector Seq; }; Here, the number N in mpl::int_< N > denotes some arbitrary decimal number. Then some other code calculates the sum of these numbers up to the type defined by "key", e.g. for Definition::D, the sum is 5 + 3 + 6 (A + B + C). This needs to be done at compile-time. That's why I use mpl::vector and some appropriate meta-programming. I'm wondering whether it would be possible to provide such struct definition without the need to repeat type names in the mpl::vector for Seq type. In other words, I'd probably need a bunch of macros which would allow me to write code like this: struct Definition { FIELD(A, 5); FIELD(B, 3); FIELD(C, 6); FIELD(D, 1); GEN_SEQ() // if needed }; And then Definition::A would still refer to boost::mpl::int_<5>, or would at least allow me to access the boost::mpl::int_<5> somehow, and Definition::Seq would give me the appropriate MPL sequence. Of couse this is just my imagination. The code might look different, I'm just looking for options. Thanks in advance. Adam Romanek
participants (1)
-
Adam Romanek