
Robert Ramey wrote:
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."
This rule means that I can't include <boost/serialization/base_object.hpp> in my headers, and then in my cpp file first include my headers and then archive headers. And I do want to include my header first in .cpp, in order to detect any missing includes in the header itself.
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.
No, even with the mandated order of includes, I still run into the problem.
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.
How? Clearly, if I include base_object.hpp in a header, I cannot obey the above rule. Ok leaving just: #include <boost/serialization/access.hpp> #include <boost/serialization/split_member.hpp> #include <boost/serialization/base_object.hpp> in my header, and using the mandated includes order in .cpp file, I still get the same error. What should we do next? - Volodya