// file : examples/cxx/hybrid/binary/custom/irawostream.txx // author : Boris Kolpackov // copyright : not copyrighted - public domain #include // memcpy template void operator>> (irawstream& s, xml_schema::pod_sequence& x) { size_t n; irawstream::as_size as_size (n); s >> as_size; x.clear (); if (n > 0) x.assign ( reinterpret_cast (s.align (sizeof (T), sizeof (T) * n)), n); } template void operator>> (irawstream& s, xml_schema::fix_sequence& x) { size_t n; irawstream::as_size as_size (n); s >> as_size; x.clear (); if (n > 0) { x.reserve (n); while (n--) { T i; s >> i; x.push_back (i); } } } template void operator>> (irawstream& s, xml_schema::var_sequence& x) { size_t n; irawstream::as_size as_size (n); s >> as_size; x.clear (); if (n > 0) { x.reserve (n); while (n--) { T* p = new T; typename xml_schema::var_sequence::guard g (p); s >> *p; g.release (); x.push_back (p); } } }