Hi,
// ClassDefT(TestClass, Type)
The 2nd parameters of ClassDefT is suppose to be a version number.
Since ROOT 3.03.07 the macro ClassDefT, ClassDefT2 and ClassImpT are
obsolete.
Just use ClassDef(classname,version_number).
So your TestClass.h can look like:
template<class Type>
class TestClass : public TObject
{
public:
TestClass();
~TestClass();
private:
Type *_tree;
ClassDef(TestClass, 1);
};
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Jedong Lee
Sent: Monday, February 17, 2003 8:57 PM
To: Rene.Brun@cern.ch
Cc: Roottalk
Subject: [ROOT] template class
Hello,
I am trying to write a template class. However I fail to generate
the dictionary:
-------------------------------------------------------------------
% rootcint -f TestClass_dict.C -c TestClass.h TestClass_linkdef.h
Error: Symbol int is not defined in current scope FILE:TestClass.h LINE:286
*** Interpreter error recovered ***
Error: Symbol int is not defined in current scope FILE:TestClass.h LINE:286
*** Interpreter error recovered ***
-------------------------------------------------------------------
Source files are listed:
*****************************************************
* File TestClass.h
*****************************************************
#ifndef __TestClass__
#define __TestClass__
#include "TObject.h"
template<class Type>
class TestClass : public TObject
{
public:
TestClass();
~TestClass();
private:
Type *_tree;
ClassDefT(TestClass, Type)
};
ClassDefT2(TestClass, Type)
ClassImpT(TestClass, Type)
template<class Type>
TestClass<Type>::TestClass() // Constructor
{
_tree = new Type;
}
template<class Type>
TestClass<Type>::~TestClass() // Destructor
{
delete _tree;
}
#endif
*****************************************************
* File TestClass.C
*****************************************************
#include "TestClass.h"
*****************************************************
* File TestClass_linkdef.h
*****************************************************
#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class TestClass<int>+;
#endif
*****************************************************
I appreciate for your help,
- Jedong
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET