
Richard Jennings wrote:
Here's a request for an extension to ENUM_VALUES for you to consider.
Here's an example: BOOST_ENUM_VALUES_DESCRIPTIONS(BlockType_t, std::size_t, (SampleIfg)(0)("Sample Interferogram") (SampleSpec)(1)("Sample Spectrum") (SamplePhase)(2)("Sample Phase") (RefIfg)(3)("Reference Interferogram"))
How about: struct BlockData { BlockData(std::sizt_t a_index, const char *a_description) : index(a_index), description(a_description) { } std::sizt_t index; const char *description; }; BOOST_ENUM_VALUES(BlockType_t, BlockData, (SampleIfg)(BlockData(0, "Sample Interferogram")) (SampleSpec)(BlockData(1, "Sample Spectrum")) ) or even better for my taste: BOOST_ENUM_VALUES(BlockType_t, BlockData, (SampleIfg)({ 0, "Sample Interferogram" }) (SampleSpec)({ 1, "Sample Spectrum" }) ) and then you don't even need to constructor of BlockData. I'm not sure if this compiles, but I hope it does. If it doesn't, can you make it work, Frank? If it does, then I guess it's quite nice for you, Richard, isn't it?