Re: [ROOT] location of the ClassDef

From: Jiri Masik (masik@fzu.cz)
Date: Thu Oct 30 2003 - 13:31:39 MET


Hi Maarten,

thanks - it solves the problem.
cheers

Jiri

Maarten Ballintijn <maartenb@mit.edu> writes:

> Hi Jiri,
>
> How about adding
>
> #ifndef HAVE_ROOT
> #define ClassDef(a,b)
> #endif
>
> to the beginning of your file, and not putting the "#ifdef HAVE_ROOT"
> around the ClassDef() inside the class?
>
> Cheers,
>
> Maarten.
>
> On Thu, 2003-10-30 at 05:09, Jiri Masik wrote:
>> Hi,
>> 
>> I have written an interface to the pdflib library. While Root is not
>> necessary for its function I'd like to extend it by some features if
>> Root is available on a given system. So I have the following lines
>> 
>> class PDFSet
>> #ifdef HAVE_ROOT
>>   : public TObject 
>> #endif
>> {
>> 
>> public:
>>   PDFSet();           //keep the currently set PDF
>>   PDFSet(Int_t Type, Int_t Group, Int_t Set); //set PDF
>> 
>>   ~PDFSet();
>> private:
>>   UShort_t fType;        // PDF type
>>   UShort_t fGroup;       // PDF group
>>   UShort_t fSet;         // PDF set
>> 
>> #ifdef HAVE_ROOT
>>   ClassDef(PDFSet,1)
>> #endif
>> };
>> 
>> It probably fails due to the limitation on the position of the
>> ClassDef macro which has to be on the last line before };. If it is
>> surrounded by #ifdef/#endif there is an unresolved reference
>> PDFSet::ShowMembers(TMemberInspector&, char*) whenever I attempt to
>> load the library into Root. Is there a way around this?  
>> 
>> thanks
>> 
>> Jiri
>
> -- 
> Maarten Ballintijn <maartenb@mit.edu>
> Massachusetts Institute of Technology



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET