Giriş
Belirtilen belleği stream'e yazar.
Örnek
boost serialization normalde std::vector nesnesini yazıp okuyabilir. Sadece örnek olsun diye ekliyorum. Elimizde bir vector olsun
Örnek
Şöyle yaparız.
Belirtilen belleği stream'e yazar.
Örnek
boost serialization normalde std::vector nesnesini yazıp okuyabilir. Sadece örnek olsun diye ekliyorum. Elimizde bir vector olsun
std::vector<int> v(100);
Şöyle yaparız.std::ostringstream oss;
boost::archive::binary_oarchive oa(oss, flags);
oa << v.size() << boost::serialization::make_array(v.data(), v.size());
Örnek
Şöyle yaparız.
template <class Archive>
inline void save(Archive &ar, icu_55::UnicodeString const &s,const unsigned int) {
auto sz = s.getCapacity();
auto len = s.length();
auto buf = s.getBuffer();
if (!buf) throw std::invalid_argument("str");
ar & sz & len & boost::serialization::make_array(buf, sz);
}
template <class Archive>
inline void load(Archive &ar, icu_55::UnicodeString &s, const unsigned int)
{
size_t sz, len;
ar & sz & len;
auto buf = s.getBuffer(sz);
if (!buf) throw std::invalid_argument("s");
try {
ar & boost::serialization::make_array(buf, sz);
}
catch(...) {
s.releaseBuffer(len);
throw;
}
s.releaseBuffer(len);
}
Hiç yorum yok:
Yorum Gönder