<iostream> must be replaced by "Riostream.h"

Dear experts,

Before we used ROOT version 5.12ah and now we use 5.14.

We found that we have to change all

#include

with

#include “Riostream”

We would very much like to know why this is.

We could not find a clue for this in the release notes. Probably something was cleaned up?

Thanks for any answer,

Ytsen de Boer (H1)

There are no changes in this area between 5.12 and 5.14.
You must have something else in your environment that gives problems.
Riostream.h is only convenient if you want to run your code on a large
variety of machines with old compilers that do not like either “std::xxx"
or force you to always specify " std::”.
In general you should use iostream.

Rene

Dear Rene,

Thanks for the fast answer.

IT installed the new ROOT version and we did not change anything else (all code identical, only using new ROOT version).

The last lines of the compiler error below, if you have a hunch, please share it with us, otherwise we’ll find out ourselves of course :slight_smile:

Many thanks,

Ytsen de Boer

/opt/products/gcc/3.3.3/bin/g++ -c -c -O2 -Wall -Df2cFortran -fpic -I. -I/h1desy06/user/ytsen/build_releases/releases/3.0.5/H1Geom -I/… -I/h1desy06/user/ytsen/build_releases/releases/3.0.5/H1Geom/… -I/user/ytsen/build_releases/releases/3.0.5/ -I/opt/products/root/5.14.00/include -g -o i586_linux24/H1RunQuality.o i586_linux24/…/H1RunQuality.C
H1RunQuality.C: In member function virtual void H1RunQuality::Print(const Option_t*) const': H1RunQuality.C:104: error:setw’ undeclared (first use this function)
H1RunQuality.C:104: error: (Each undeclared identifier is reported only once
for each function it appears in.)
gmake[2]: *** [i586_linux24/H1RunQuality.o] Error 1
gmake[2]: Leaving directory /h1desy06/user/ytsen/build_releases/releases/3.0.5/H1Geom' gmake[1]: *** [libH1Geom] Error 2 gmake[1]: Leaving directory/h1desy06/user/ytsen/build_releases/releases/3.0.5/H1Geom’
make: *** [H1Geom.slib] Error 2

To use “setw” you must
#include

Rene

Dear Rene Brun,

We found that there WAS a change. The TLeaf.h includes now Riosfwd but included before Riostream which includes iomanip. Seems that we have been surfing on a flaw untill now.

Best wishes,

Ytsen.

Revision 1.14 / (view) - annotate - [select for diffs] , Thu Aug 31 11:05:20 2006 UTC (3 months, 2 weeks ago) by rdm
Branch: MAIN
CVS Tags: v5-14-00, v5-13-06, v5-13-04e, v5-13-04d, v5-13-04c, v5-13-04b, v5-13-04a, v5-13-04-patches, v5-13-04, HEAD
Changes since 1.13: +4 -2 lines
Diff to previous 1.13

changed all Riostream.h in headers to Riosfwd.h. Riostream.h has "using namespace std"
and should only appear in implementation files.