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