On 7 December 2010 09:23, Troy Straszheim <straszheim@willowgarage.com> wrote:
On Mon, Dec 6, 2010 at 4:05 PM, Piotr Trojanek <piotr.trojanek@gmail.com> wrote:
> Yes, I have tested the archive with std::vector and it simply works.
>
> I guess it works also for any collection, which is supported by
> Boost::serialization framework.
> The magic is in the <boost/serialization/vector.hpp> header, not in the
> archive itself.
>
> For any primitive type always the same xdr_* function is called, so (by the
> design of XDR)
> it does not matter if the caller is 32 or 64 bit (nor if little/big endian).
>

Interesting.  collection_size_type is std::size_t:

 BOOST_STRONG_TYPEDEF(std::size_t, collection_size_type)

and in some implementations std::size_t is 'unsigned long'.  If you
then use this implementation on two platforms where
'unsigned long' have different sizes, you will get incompatible
archives.   In my experience with portable binary archives (we are
going way back to boost 1.32), it was necessary to choose a size (e.g.
handle collection_size_type explicitly and cast to uint64_t, for
example).

Cool archive, in any event.  boost::serialization is incredibly useful stuff.

-t
_______________________________________________
ros-users mailing list
ros-users@code.ros.org
https://code.ros.org/mailman/listinfo/ros-users

Was talking to a group today who've also used boost::serialization under the hood. Was wondering though - we did a test with binary archives of a large ekf matrix a while ago (file dump on arm -> load on intel) and failed. Found out later this was obscurely documented: http://beta.boost.org/doc/libs/1_45_0/libs/serialization/doc/archives.html#archive_models (in the code snippet comment '// non-portable binary archive').

Does this effect boost based messaging systems?

Cheers,
Daniel.

--
Phone : +82-10-5400-3296 (010-5400-3296)
Home: http://snorriheim.dnsdojo.com/
Yujin Robot: http://www.yujinrobot.com/
Embedded Ros : http://www.ros.org/wiki/eros
Embedded Control Libraries: http://snorriheim.dnsdojo.com/redmine/wiki/ecl