Boost logo

Boost :

From: Russell Hind (rh_gmane_at_[hidden])
Date: 2004-10-26 05:42:04

There seems to be a problem on win32 where if you use a stream opened in
text mode for a binary archive, you get errors. The following code
asserts because 'd' appears to have a random value on the way back in.

If you open both streams in binary mode then the code runs fine. XML
archives don't have the same problem.

I realise you shouldn't use a binary archive with a text stream, but is
there anyway to catch this at compile or run time? Otherwise you just
end up with a corrupted archive?



double d = -6.7;
     ofstream ofs("C:\\test.dat");
     archive::binary_oarchive oa(ofs);
         oa & d;

     d = 0.0;
     ifstream ifs("C:\\test.dat");
     archive::binary_iarchive ia(ifs);
         ia & d;
     assert(std::abs(d + 6.7) < 0.0001);

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