Date: Mon, 25 Nov 2002 10:41:17 +0100 From: Matthias Troyer <[EMAIL PROTECTED]>
>> I guess this should be changed to: >> #ifdef BOOST_HAS_MS_INT64 >> virtual basic_iarchive & operator>>(int64_t & _Val) = 0; >> virtual basic_iarchive & operator>>(uint64_t & _Val) = 0; >> #endif >> #ifdef BOOST_HAS_LONG_LONG >> virtual basic_iarchive & operator>>(long long & _Val) = 0; >> #endif >This sounds better. Thanks. whoops, that doesn't work either - this will take some work to address. >> why can't this be handled using >> >> basic_oarchive::write_binary(void *p, size_t count) >This does not allow type-specific transformation (e.g. change of byte >order) to be performed. Thus we neeed one such function for each >primitive type. I fail to see the problem. If you want superfast i/o with only once virtual function call use basic_oarchive::write_binary(void *p, size_t count) If you want each array item handled individually use ar << t Note that if t is a fundamental type, all serialization machinery is effectively bypassed. So the only overhead is one vtable indirection which should be small compared to doing something like changing bigendian to little endien > >> The current library is however not consistent since > [snip] >According to the documentation this seems to be the way we have to >implement it. Do you want to tell me that if I just want to support conforming >compilers, then I can just specialize the serialization class for my >template classes? If so, then only a change to the documentation seems >needed. Currently there is only one way to specify serialization of template classes. I believe a better way (as hinted at in the manual) will be available to those concerned only with conforming compiler in addition to the current method. Robert Ramey _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost