Bad CINT dictionary for class with THashTable data member

From: Nick West (n.west1@physics.oxford.ac.uk)
Date: Fri Dec 17 1999 - 20:38:55 MET


Hi,

can anyone see what I am doing wrong?  I am running:-

    ROOT 2.23/08   on  Digital UNIX V4.0F  

My problem is that if I include a THashTable in my class, Cint generates 
dictionary code that fails to compile:-

> Generating TestCint dictionary ...
> rootcint -f TestCint.cc -c                              \
>                   Test.h                                        \
>         LinkDef.h
> Note: operator new() masked 1c
> Note: operator delete() masked 1c
> class Test in Test.h line 3 original base of virtual func

> cxx -c -o TestCint.o -O -oldcxx -nostdnew -D__osf__ -D__alpha 
> -I/minosdisk/software/root_2.23_08/root/include -I/usr/include/cxx  TestCint.cc

> cxx: Error: TestCint.cc, line 130: In this statement, "(*(Test ...)G__int(libp->
> para[0]))" supplies 1 argument, but 0 are expected.
>    p=new Test(*(Test*)G__int(libp->para[0]));
> -----^

I only have two files: Test.h and Test.cxx:-

Test.h
------

#include "test/Test.h"
ClassImp(Test)
Test::Test() {}

Test.cxx
--------

#include "THashTable.h"
class Test
{
public:
      Test();
private:
      THashTable fRshipTable;
ClassDef(Test,0)
};

If I use a pointer to THashTable then it works so this must involve the
THashTable constructor somehow.  However class has a default constructor and in
any case, placing an explicit THashTable in the initialiser list for Test:-

Test::Test() : fRshipTable(1,2) {}

doesn't fix the problem.

Thanks

Nick West



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