Hi Benoit, CINT does not support the old style omanip (in iomanip.h). You have to use #ifdef to exclude it when running rootcint. Note that your code will not compile under gcc3.2. You better remove omanip anyhow. Rene Brun Benoit Revenu wrote: > > SAME MAIL AS BEFORE BUT WITH A SUBJECT > > Dear rooters, > > I'm trying to use omanip in a header file where I define a class which > will be in a dictionnary. > > One of the functions defined in this file is: > ============================================= > inline omanip<int> space(int Spacing) > { > return omanip<int>(space,Spacing); > }; > > The class defined is A and the LinkDef is simply > ... (usual stuff) > #pragma link C++ class A; > > #endif > > The result of the compilation is : > Error: no such template omanip<int> FILE:../src/Class.h LINE:14 > Warning: Error occured during reading source files > Warning: Error occured during dictionary source generation > !!!Removing RootDict.cc RootDict.h !!! > > A solution is to put the "space" function between > #ifndef __CINT__ > inline omanip<int> space(int Spacing) > { > return omanip<int>(space,Spacing); > }; > #endif > > and I would like to understand why ! And I would like to avoid to put > everywhere #ifndef __CINT__..... > > In attachement, there is a tar file containing : > Class.h (32lines) > Class.cc (7lines) > LinkDef.h (10 lines) > analyse.cc (9 lines), a stupid test > > -------------------------------------------------------------------------------- > Name: omanip.tar > omanip.tar Type: Unix Tape Archive (APPLICATION/X-TAR) > Encoding: BASE64
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET