Hi,
I would expect that `<<`ing a bool to cout prints a 0 or 1 for a
variable containing false and true, respectively. This isn't true
for CINT 5.15.17 in ROOT 3.02/03. The simple macro
void trial()
{
float f = 1.;
for (int i = 0; i < 48; i++) {
bool b = f;
cout << "b = " << b << " f = " << f << endl;
f *= 2.;
}
return;
}
gives when interpreted by CINT
b = 1 f = 1
b = 2 f = 2
b = 4 f = 4
...
b = -2147483648 f = 1.40737e+14
while when ACLiC'ed I get
b = 1 f = 1
b = 1 f = 2
...
b = 1 f = 1.40737e+14
I don't know whether the implementation of operator<<(ostream&, bool)
or the way the implicit conversion to bool is done is to blame. At
least both don't seem to work together well.
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
PGP: http://www-kp3.gsi.de/~mueller/pgp.shtml
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:10 MET