Boost logo

Boost Users :

From: Adrian Grigore (adrian_at_[hidden])
Date: 2006-01-22 05:13:22


Hi,

I encountered a mysterious stream exception when trying to deserialize
an std::map<std::string,long> container. The exception seems to occur
depending on the data stored in the container. Unfortunately none of the
hints regarding stream exceptions from the manual seem to help.

The source code is as follows:

>>>>

std::map<RHANDLE,long> ArchiveEntries;
...

void ResArchive::SaveToFile()
{
        std::ofstream ofs (INDEX_FILE_NAME);
        boost::archive::binary_oarchive OArchive(ofs);
        OArchive <<ArchiveEntries;
}

void ResArchive::LoadFromFile()
{
        std::ifstream ifs(INDEX_FILE_NAME);
        boost::archive::binary_iarchive IArchive(ifs);
        IArchive >>ArchiveEntries; //STREAM EXCEPTION!!!
}

<<<<

I do not open any file stream to the index file in any other part of my
source code, so multiple simultaneous streams can't be the problem.

I can consistently reproduce the error for 2 given sets of test data,
but I also have some test data ( just 2 entries instead of a few
thousand) where the problem does not occur. I have not been able to
isolate the exact data that is needed to cause such a stream exception
though.

Any hints on how to proceed would be greatly appreciated. Thanks in
advance for your time! :-)

Best Regards,

-- 
	Adrian Grigore
	
 --
 Adrian Grigore
 adrian_at_[hidden]
 Lobstersoft - Fun Brain-Bending Games For All Ages
 http://www.lobstersoft.com
 Member of the Association of Shareware Professionals

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net