Thanks for your quick answer. Looks like you found a hole in the standard library... I'm sure boost can fix that :-)
Maybe there's a way to detect if it's binary or not by writing something dumb and check the current postion. An "active probe" if I may.
Thanks,
Frank
PS: Couple of more keywords so that somebody with the same problem find
this post: serialization, bug, issue, exception, binary mode, open mode.
Btw, the problem was not descrribe with human words:
Opening a binary archive with a non-binary stream leads to an exception
which looks unrelated to the origin of the problem (which makes it hard
to debug).
I've been aware of this since the very beginning.If you have a way of determining the flags which have been set onand open stream - please let me know.Robert Ramey"gtsml owevwr" <gtsml.owevwr@googlemail.com> wrote in message news:6e954aa60901090542v4fe9be4w5993fabe0e1e6c53@mail.gmail.com...Hi,
I just spend a entire day to realize this code was wrong:
std::ofstream ofs(filename.c_str());
boost::archive::binary_oarchive oa(ofs);
oa << (*this);
And this one was right:
std::ofstream ofs(filename.c_str(), std::ios::binary);
boost::archive::binary_oarchive oa(ofs);
oa << (*this);
The consequence of the first code is a "stream_error" throw which doesn't say much about the problem.
Instead, an exception should be thrown earlier on if the file is not in binary mode.
thanks alot to all the boost contributors,
Frank
_______________________________________________
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