Reiner Rohlfs wrote:
> That means Bool_t will change from a type of size 1 byte to a type of size 4
> byte (at least on SUN). Isn't that a problem when I will read ROOT files which
> were created with an old version?
It is true that the memory representation of objects will change because
usually sizeof(bool) == sizeof(int). However the external representation
in a ROOT file depends on what is implemented in
TBuffer &operator<<(bool b);
TBuffer &operator>>(bool b);
and that should clearly represent a bool externally as a single byte.
A more subtle problem is that currently there is no TBuffer::operator<<(bool b)
and that streams use
R__b >> (Int_t&)fbool;
R__b << (Int_t)fbool;
to stream a `bool'. That means that currently a bool is indeed 4 byte on a ROOT
file. So the implementation of my proposal needs the same tricky as the fix of
the Long_t external representation after 3.00.06.
Cheers, Walter
--
Walter F.J. Mueller Mail: W.F.J.Mueller@gsi.de
GSI, Abteilung KP3 Phone: +49-6159-71-2766
D-64291 Darmstadt FAX: +49-6159-71-2989
WWW: http://www-kp3.gsi.de/www/kp3/people/mueller.html
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:09 MET