At 10:58 PM 3/4/2003, Douglas Gregor wrote:
On Tuesday 04 March 2003 10:16 pm, Edward Diener wrote:
Beman Dawes wrote:
Have you considered proposing a macro which will automatically apply the appropriate #pragma for the compiler? That way the knowledge of what #pragma to apply for each compiler only has to be maintained and tested in one place.
Excellent idea. Now why didn't I think of that <g>. It's the old forest
and the trees thing, no doubt.
The macro would have to be in the form of:
BOOST_DATA_LAYOUT_BEGIN
at the beginning of a header file surrounding any class/struct/union/enum declarations and
BOOST_DATA_LAYOUT_END
at the end.
Would you willing to provide the definitions for these macros (or, as I suspect, begin/end headers)? I'd be happy to use them, but as I've never needed such a thing I don't know the particular pragmas to use.
I'm in the same boat as Doug, and I expect other Boost developers are too. It isn't just a header (and docs) that are needed; test cases would be important too. It would be easy for mistakes in these macros to give the appearance of working, but actually do nothing. If I understand it, you can only tell they are working correctly with a fairly sophisticated build test that deliberately tries to use object files compiled with conflicting options. --Beman