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

From: Rutger van der Eijk (r36@nikhef.nl)
Date: Sat Jun 05 1999 - 21:27:27 MEST


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



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:34 MET