
I've given a quick look at your post and attachtment. I vividly recall the making several attempts to get BOOST...EXPORT to compile - then to instantiate code. In fact, even those efforts were not entirely successful - CW still can't handle it. Then there was a final round getting it past two phase lookup. So as much as I would like to see this last header dependency eliminated, I think it would take a lot more time than it would first appear. And right now I don't have the time required even to address higher priority issues. Robert Ramey David Abrahams wrote:
"Robert Ramey" <ramey@rrsd.com> writes:
This is explained in the docmentation under
Reference/Special Considerations/Exporting Class Serialization
Robert Ramey
I have analyzed your issue and I believe there is a better way; one that avoids the header ordering requirement. I have put together a small demonstration, which is enclosed. This shows that we can instantiate a class template (instantiator) for the exported class and each archive that's been seen.
Then the only challenge is causing that class template instantiation to actually instantiate executable code. Fortunately, I've recently addressed that problem in changes to the serialization library. The basics are in CVS at:
boost/boost/concept/detail/general.hpp boost/boost/concept/detail/msvc.hpp boost/boost/concept/detail/borland.hpp
(Ignore the part that says BOOST_OLD_CONCEPT_SUPPORT), so we have the technology. And if you use the function pointer technique of BOOST_CONCEPT_ASSERT(( ... )) in boost/boost/concept/assert.hpp you'll be able to use BOOST_CLASS_EXPORT on class template instances with multiple arguments.
BOOST_CLASS_EXPORT(foo<bar,baz>) // an error, today.
I hope all this is helpful.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost