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

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


Hi,

Looking a bit further it seems that the problem with macros is:

{

if (whatever) {
#include <iostream.h>
}

}

doesn't work.

{

#include <iostream.h>

}

does work. So it's minor thing, solved now.

Sorry for posting,

Rutger

On Sat, 5 Jun 1999, Rutger van der Eijk wrote:

> 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
>
>
>
>
>
>
>
>
>
>
>
>