iostream.h & CINT in ROOT v2.22/04

Rutger van der Eijk (r36@nikhef.nl)
Sat, 5 Jun 1999 21:27:27 +0200 (MET DST)


Hi,

I try to get my code running with ROOT v2.22/04 and run into a
small problem executing marcos.

To be able to initialize certain members of an object without recompiling
I call a macro from within the object at initialization time. In this
macro I sometimes need to give output to cout. In v2.21 I had to use
#include <iostream.h> to be able to do this. (Not in an interactive
version because then it's in my rootlogon.C). Now this seems to give
conflict with CINT.

The call from the object:

------------
StatusCode OTAlgorithm::setProperties()
{
// Set algorithm properties.
// This is done my calling the (CINT) C++ macro associated with this
algorithm.

// set global algorithm to this algorithm
gOTAlgorithm = this;

// create macro name
TString macroName = "i" + this->name() + ".C";

// execute macro
if (gROOT->Macro(macroName) != 0) { // however gROOT->Macro always
returns 0...
return StatusCode::FAILURE;
}

// end
return StatusCode::SUCCESS;
}
----------
(parts) of the macro:

--------
{
// check for global algorithm
if (!gOTAlgorithm) {
#include <iostream.h>
cout << "gOTAlgorithm not defined" << endl;
return;
}

...
...

// initialize the algorithm

...
...
}
-------

This gives the error with new ROOT:

Error: class,struct,union or type intostream not defined
FILE:/afs/cern.ch/user/r/rutger/root/cint/include/iostream.h LINE:233

How should I handle this now(V2.22)?

Rutger van der Eijk