
Vladimir Prus wrote:
So, to summarize: 3. What are the exact rules about relative order of serialization/ and archive/ includes?
In order to get desired behavior regarding invocation of auto-linking only when necessary I had to impose some restriction regarding sequening of #include statements. The rule is: "all #includes from the boost/archive directory should preceed all #includes from the serialization directory." Up until now, this "rule" was only necessary for inclusion of export.hpp .
1. Could the type_info_implementation.hpp header be fixed either by including
#include <boost/serialization/extended_type_info_typeid.hpp>
This should be included automatcially if no other alternative extended_type_info implementation is not loaded first. That is, the default system is to use rtti as the type_info system. I'm pretty sure that adherence to the rule above will eliminate this problem. While making the the changes to avoid auto-linking, I ran into the problem. As you have discovered, its source is not at all obvious. That is why I added the #errror message to enforce the rule above. I do not believe that this will create any problem for library users. It will permit BOOST_CLASS_EXPORT macros to be located in the class header files where they rightfully belong without instantiating unused code and linking. This was a previous annoyance which I hope will be addressed by these changes.
2. Could base_object.hpp be fixed either by including the appropriate header, or in some other way.
I believe this will also be correct by following the above rule. Robert Ramey