RE:rootcint and templates

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Wed Aug 26 1998 - 13:09:00 MEST


Christoph,
 
>>    typedef STLObjArray<MC_Track*> DummyType1;
>>    #pragma link C++ class STLObjArray<MC_Track*>-;
>
>Would the typedef be an instantiation? 

Anything that refers to the instantiated template name is a template 
instantiation.

>I only know the gcc version, which
>looks like this (or similar, I haven't done it for a long time):
>template<class MC_Tracks*> STLObjArray;

I forgot this. This one doesn't work on cint now.

>On the other hand, would an automatic template instantiation do the same?
>In my program, there is no template instantiation missing, I would just
>like to have the cint link.

Yes, I already implemented that #pragma link statement causes template class
instantiation.

>I still have problems with this one. Does it matter, if cint replaces the
>typedef, while instantiating a member:
>
>------------------------------------------------------------------------
>typedef MC_Track* MC_TrackP;
>
>class Event
>{
>...
>  STLObjArray<MC_TrackP>* mcTracks;
>};
>------------------------------------------------------------------------
>
>The cint trace says:
>
>------------------------------------------------------------------------
>!!!Instantiating template STLObjArray<MC_Track*>
>// template STLObjArray<MC_Track*>  FILE:RtEvent.h LINE:43
>------------------------------------------------------------------------
>
>and later
>
>------------------------------------------------------------------------
>Warning: Link requested for undefined class STLObjArray<MC_TrackP>  FILE:
>------------------------------------------------------------------------
>
>Have you any idea what goes wrong here? Thank you for your help

I tried the same on my machine and it is working. Maybe the latest fix
eliminated the problem, or your header has some more complication. I'm
sorry but this is the best I can say now.

Masaharu Goto



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