[ROOT] rootcint produces invalid code for templates on Win32

From: Peter Lipa (lipa@nsma.arizona.edu)
Date: Fri Oct 12 2001 - 18:52:38 MEST


Hi,
On Win32 version of rootcint (root 3.01/06 and probably also 3.02)
the rootcint.exe produces the following code for a templated class
NxMatrix<T>:

//__________________________________________________________________________
____
template <> TBuffer &operator>><short >(TBuffer &buf, NxMatrix<short> *&obj)
{
   // Read a pointer to an object of class NxMatrix<short>.

   obj = (NxMatrix<short> *) buf.ReadObject(NxMatrix<short>::Class());
   return buf;
}

//__________________________________________________________________________
____
template <> TBuffer &operator>><unsigned short >(TBuffer &buf,
NxMatrix<unsigned short> *&obj)
{
   // Read a pointer to an object of class NxMatrix<unsigned short>.

   obj = (NxMatrix<unsigned short> *) buf.ReadObject(NxMatrix<unsigned
short>::Class());
   return buf;
}

//__________________________________________________________________________
____
template <> TBuffer &operator>><int >(TBuffer &buf, NxMatrix<int> *&obj)
{
   // Read a pointer to an object of class NxMatrix<int>.

   obj = (NxMatrix<int> *) buf.ReadObject(NxMatrix<int>::Class());
   return buf;
}

etc. etc.

We have to remove BY HAND the tokens "template <>" before each TBuffer&
operator>> and the substituted <T> after the >> to make the code valid for
MSVC++6. 

I don't know if this happens only in the windows version but I suspect so!

Could you fix this soon, since the hand-editing step after each compile
becomes
very cumbersome when you have many template instantiations (as we do)?

Thanks

Peter
   


****************************************************************************
Peter Lipa, PhD                            e-mail: lipa@nsma.arizona.edu
Arizona Research Labs - Neural Systems, Memory and Aging  
University of Arizona
Life Sciences North Bldg, Room 384;   Phone: (520) 626-3101
Tucson, AZ 85724-515                       Fax: (520) 626-2618
****************************************************************************



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:02 MET