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

Reply via email to