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