Re: pragma

From: Fons Rademakers (Fons.Rademakers@cern.ch)
Date: Thu Jun 05 1997 - 12:52:13 MEST


Here are all rootcint pragma's:

#pragma link C++ class ClassName[-];   can use regexp
#pragma link C   class ClassName;      can use regexp
#pragma link off class ClassName;      can use regexp

#pragma link C++ enum ClassName;       can use regexp
#pragma link C   enum ClassName;       can use regexp
#pragma link off enum ClassName;       can use regexp

#pragma link C++ function FuncName;    can use regexp
#pragma link C   function FuncName;    can use regexp
#pragma link off function FuncName;    can use regexp

#pragma link C++ global VariableName;  can use regexp
#pragma link C   global VariableName;  can use regexp
#pragma link off global VariableName;  can use regexp

#pragma link C++ typedef TypeName;     can use regexp
#pragma link C   typedef TypeName;     can use regexp
#pragma link off typedef TypeName;     can use regexp

#pragma link off all classes;
#pragma link off all functions;
#pragma link off all variables;
#pragma link off all typedefs;


And here is an axample of how they are used in ROOT itself:

//-------------------------------------------- LinkDef.h
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;

#pragma link C++ global kTRUE;
#pragma link C++ global kFALSE;

#pragma link C++ global gROOT;
#pragma link C++ global gSystem;
#pragma link C++ global gDebug;

#pragma link C++ enum EMessageTypes;

#pragma link C++ function Strip;
#pragma link C++ function StrDup;
#pragma link C++ function operator+(const TString&,const TString&);
#pragma link C++ function operator+(const TString&,const char*);
#pragma link C++ function operator+(const char*,const TString&);
#pragma link C++ function operator==(const TString&,const TString&);
#pragma link C++ function operator==(const TString&,const char*);

#pragma link C++ class TApplication;
#pragma link C++ class TApplicationImp;
#pragma link C++ class TAttAxis;
#pragma link C++ class TAttFill;
#pragma link C++ class TAttFunc;
...
...
//--------------------------------------------

First 3 pragma's turn off processing of all globals, classes
and functions (by default everything will be processed).

Next we decide what we want to export via the interpreter.
The next 5 lines show how we export constants and global pointers.

Next we export an enum and all its members.

Next a set of functions and operators.

Followed by the desired classes.

Also see "rootcint -?" to see how LinkDef.h is used.

Cheers, Fons.


Detlef Kuechler wrote:
> 
> Is there a list of root specific pragmas and their meaning?
> 
> Detlef Kuechler
> 
> Technische Universitaet Dresden
> Institut fuer Kern- und Teilchenphysik
> Aussenstelle Pirna
> Pratzschwitzer Strasse 15
> D-01796 Pirna
> Germany
> 
> phone +49 (3501) 530061
> fax   +49 (3501) 530011
> 
> ****************************************************
>  All science is either physics or stamp collecting.
>                               --- E. Rutherford ---
> ****************************************************

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland          Phone: +41 22 7679248
E-Mail: Fons.Rademakers@cern.ch              Fax:   +41 22 7677910



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