void deserialize(storage_type& s) { s.deserialize(mFirstX); s.deserialize(mXW); s.deserialize(mW); s.deserialize(mXXW); }
static void deserialize(storage_type& s, Nullable<T>& out) { bool n; s.deserialize(n); if (n) { T t; s.deserialize(t); out = t; } else out = null(); }
static void deserialize(storage_type& s, boost::unordered_map<T1, T2>& o) { o = boost::unordered_map<T1,T2>(); uint32_t sz; s.deserialize(sz); for (int32_t k = 0; k < sz; k++) { T1 key; s.deserialize(key); s.deserialize(o[key]); } }
static void deserialize(storage_type& s, boost::unordered_set<T>& o) { o = boost::unordered_set<T>(); uint32_t sz; s.deserialize(sz); for (int32_t k = 0; k < sz; k++) { T key; s.deserialize(key); o.insert(key); } }
static void deserialize(storage_type& s, MapWithIndex<T1, T2, cmp_type_1, cmp_type_2>& o) { o = MapWithIndex<T1,T2, cmp_type_1, cmp_type_2>(); uint32_t sz; s.deserialize(sz); for (uint32_t k = 0; k < sz; k++) { T1 key; T2 val; s.deserialize(key); s.deserialize(val); o.set(key,val); } }
static void deserialize(storage_type& s, Alternative<T1, T2>& in) { bool isLeft; s.deserialize(isLeft); if (isLeft) { T1 t1; s.deserialize(t1); in = Alternative<T1, T2>(t1); } else { T2 t2; s.deserialize(t2); in = Alternative<T1, T2>(t2); } }
void deserialize(storage_type& s) { s.deserialize(mKeysToValues); s.deserialize(mValuesToKeys); }