Std :: map serileştirmek için Boost.Serialization kullanıyorum. kod derlenmiş ve Mac Snow Leopard ve Ubuntu Lucid 10,04 kod test buBoost.Serialization farklı platformlarda farklı serileştirir mi?
void Dictionary::serialize(std::string & buffer)
{
try {
std::stringstream ss;
boost::archive::binary_oarchive archive(ss);
archive << dict_;
buffer = ss.str();
} catch (const std::exception & ex) {
throw DictionaryException(ex.what());
}
}
void Dictionary::deserialize(const char * const data, int length)
{
try {
namespace io = boost::iostreams;
io::array_source source(data, length);
io::stream<io::array_source> in(source);
boost::archive::binary_iarchive archive(in);
archive >> dict_;
} catch (const std::exception & ex) {
throw DictionaryException(ex.what());
}
}
I benziyor. Her iki sistemde de 1.00 Yükseltme var. Mac’te kodu kendim kurdum. Ubuntu kutucuğunda, ikilileri yetenekle aldım.
Sorun: Mac'te haritayı serileştirdiğimde, Ubuntu kutusundaki seri hale getiremiyorum. Denediğimde geçersiz imzalı istisnası alıyorum.
Bunun, uygulamanızın performansı üzerinde çok önemli bir etkisi olabileceğini unutmayın. –