ok now it worked!!
Hmmm- what surrounds this?-> there is more code part of an algorithm, but nothing important for the example embedded.try{const class Lattice lat ......ar << lat}that might work better.Robert Rameythanks Robert, let me tell you about lat just in case i missed to point somethinglat was created this wayLattice *lat = new Lattice("filename");i thought that pointers passed to archive wasnt possible, thats why i did "ao << *(this->lat);", and it actually worked when i removed edges. however i also tried what yo suggested, and it also works without "edges", but otherwise i get the same error.this is updated code if i use class pointersprintf("serializing to binlat.x...\n");//!file mode/*std::ofstream ofs("binlat.x", ios::binary);boost::archive::binary_oarchive oa(ofs);*/oa << lat; //lat was created earlier at some point of the program "Lattice *lat = new Lattice("filename")"ofs.close();lat->print(); //check what lattice im serializing//!Deserialization - read file binlat.x and reconstructprintf("reconstructing serialized binlat.x...\n");Lattice *nl;std::ifstream ifs("binlat.x", ios::binary);boost::archive::binary_iarchive ia(ifs);//!deserialize objectia >> nl;ifs.close();nl->print();i had to change the receiving lattice to a class pointer too. in the end, it also throws the same error when "edges" map is included on the serialization.i will keep trying different ideas to find the problem, in the meanwhile any help is welcome.by considering that when i remove "edges" from the serialization of Lattice object it works, i suspect the problem comes from "edges" map or maybe from the "Edge" class at a particular atribute.
>
>
> i get bad errors when deserializing, complaining about a bool and
> char.
> serializing to binlat.x...
> Lattice::print().....START
> Nodes=2 Edges= 1
> Node[0] sp=1 ext=1
> Linked to edge 2 (Node 3 or 0 )
> Node[3] sp=1 ext=2
> Linked to edge 2 (Node 3 or 0 )
> Lattice::print().....END
> [enter]
> reconstructing swerialized binlat.x...
> [enter]
> plattice:
> /usr/local/include/boost/archive/basic_binary_iprimitive.hpp:98: void
> boost::archive::basic_binary_iprimitive<Archive, Elem,
> Tr>::load(bool&) [with Archive = boost::archive::binary_iarchive,
> Elem = char, Tr = std::char_traits<char>]: Assertion `0 == i || 1 ==
> i' failed.
> [lenovo00:29384] *** Process received signal ***
> [lenovo00:29384] Signal: Aborted (6)
> [lenovo00:29384] Signal code: (-6)
> [lenovo00:29384] [ 0] [0xfea410]
> [lenovo00:29384] [ 1] /lib/tls/i686/cmov/libc.so.6(abort+0x182)
> [0xd41a82]
> [lenovo00:29384] [ 2]
> /lib/tls/i686/cmov/libc.so.6(__assert_fail+0xf8) [0xd37718]
> [lenovo00:29384] [ 3]
> ..
> ..
> *** End of error message ***
>
>
> i started debugging, and realized that the problem is completely gone
> when i remove "edges" from the serialization members of "Lattice"
> object.
> its weird, because "edge" is a map of <int, Edge> and much simplier
> than "nodes" which does work. obviously i cannot continue without
> edges, so i need to fix it somehow, but i dont understand the error
> related to edges, maybe is something im not seeing.
>
>
> dont get distracted by the messy code, i had to edit it a little to
> focus on the case.
> regards
> Cristobal
>
>
>
>
>
>
> On Thu, Aug 26, 2010 at 4:35 PM, Robert Ramey <ramey@rrsd.com> wrote:
>
>> Change the "would" into "is": it is possible to mix Boost.MPI with
>> Boost.Serialization. Any objext that can be serialized can be sent by
>> Boost.MPI. This was actually the basic idea behind Boost.MPI, to use
>> Boost.Serialization to pack and unpack MPI buffers, or to create
>> custom MPI datatypes.
>
> On thing that I never understood is why you need MPI data types at
> all.
> If one is serializing (packing) to a binary array, and sending that,
> what
> hae MPI data types have to do with it.
>
> If one were using heterogenious machines, I could understand the
> usage of MPI types. But as I understand it, the MPI serialization
> presumes
> that the machines are binary compatible. So I'm just not seeing this.
>
> Robert Ramey
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
>
>
>
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users