Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-06-23 00:19:32

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

Boost list run by bdawes at, gregod at, cpdaniel at, john at