RE:nested type

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Fri Aug 13 1999 - 13:56:07 MEST


Dear Wouter,

There are a couple of problems here.

1) class A::B {  };
  Cint can not take this syntax. Please define A::B within class A. This is
  a Cint problem. I'll put this into enhancement list.

     class A {
      public:
       class B {
        // something
       };
     };

2) ClassDef, ClassImp problems
  It seems like the problem is due to the way preprocessor works and how
  it is used. There is nothing I can do in Cint. In other words, you
  will have this problem even without Cint. I guess you'll need special macro
  for this. Something like below

     ClassDefX(name1,name2,id)
     ClassImpX(name1,name2,id)

Rene and Fons, do you have any comments?

Thank you
Masaharu Goto


=======================================================================
Dear developers,

I would like to pass a nested class into CINT but the ClassImp macro (in
particluar the _ClassInit_ macro) seems not suitable for this. To be
more concrete: I want to do something like:

class A
{
 public:
  class B;
  ClassDef(A,1)
}

class A::B
{
  ClassDef(A::B,1)
}

ClassImp(A::B)

but get a compilation error

R__InitA' does not have a nested type named `B'

(which is caused by the _ClassInit_  macro trying to define a global
function R__Init##name which becomes R__InitA::B)

Would it be possible to invent a fix for this behaviour ? Or is it
anyway not possible to use nested types in CINT ?

Thanks a lot !

Wouter



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