Hello again
I think I have localised my "problem". Now I have to ask some stupid
questions
and wait to get roundly chastised for my ignorance. Let's go!
For streaming member pointers I rely heavily on the very clear reply
given by
Rene to Paolo Adragna
(http://root.cern.ch/root/roottalk/roottalk03/2707.html).
If a class contains a member pointer which may or may not point to a valid
object (i.e. initialised to 0 in the default ctor) then the comment
field is "//" and
when reading the object the class' default ctor is called (pointer
initialised to 0) and then
in the automatic streamer for the class R__b >> fPointer is used, which
I suppose
creates an object for fPointer to point to and then fills it from the
buffer R__b.
So any class with a "//" member pointer is obliged to call its ctor when
one of its
objects is read - even if e.g. in a TTree we use
TBranch::SetAutoDelete(kFALSE)
or TStreamerInfo::SetCanDelete(kFALSE).
OK fine.
But now, let's suppose that I decide that in fact fPointer can point to
a valid
object all the time, i.e. I initialise it in the ctor with fPointer =
new SomeClass();
Then I put "//->" in the comment field of fPointer, and the automatic
streamer
should use fPointer->Streamer(); In this case, when I read in an object
of my class,
ROOT should just call the streamer for the class - it must not call the
default ctor
otherwise it will create a new SomeClass() object everytime. This is
part of the message
we are giving with "//->" yes ?? The other part is of course that the
automatic streamer
should change. However, I have just realised that in all the automatic
streamers of
all my classes the only member pointers with "//->" comment fields which
actually
have "fPointer->Streamer()" are TClonesArray pointers.
As an example you will find attached MyClass with the dictionary
generated with the command
rootcint -v -f MyClass_Dict.C -c -p MyClass.h
Now tell me that all this is normal !!!
Yours,
John
--
John D. Frankland <mailto:frankland@ganil.fr>
Beam Coordinator
GANIL
B.P. 55027
14076 CAEN Cedex 05
*tel:* +33 (0)231454628
*fax:* +33 (0)231454665
#include "MyClass.h"
ClassImp(MyClass)
///////////////////////
// MyClass //
///////////////////////
MyClass::MyClass()
{
fList=new fList;
fRef=0;
fVector=new TVector3(0.,0.,0);
fClones=new TClonesArray("TVector3",50);
}
MyClass::~MyClass()
{
delete fList;
fList=0;
fRef=0;
delete fVector;
fVector=0;
delete fClones;
fClones=0;
}
#include "TObject.h"
#include "TList.h"
#include "TRef.h"
#include "TVector3.h"
#include "TClonesArray.h"
class MyClass : public TObject
{
TList *fList;//->
TRef fRef;
TVector3 *fVector;//->
TClonesArray *fClones;//->
public:
MyClass();
virtual ~MyClass();
ClassDef(MyClass,1)//MyClass is great
};
//
// File generated by rootcint at Mon Oct 27 16:35:17 2003.
// Do NOT change. Changes will be lost next time file is generated
//
#include "RConfig.h"
#if !defined(R__ACCESS_IN_SYMBOL)
//Break the privacy of classes -- Disabled for the moment
#define private public
#define protected public
#endif
#include "MyClass_Dict.h"
#include "TClass.h"
#include "TBuffer.h"
#include "TMemberInspector.h"
#include "TError.h"
#ifndef G__ROOT
#define G__ROOT
#endif
// Since CINT ignores the std namespace, we need to do so in this file.
namespace std {} using namespace std;
#include "RtypesImp.h"
namespace ROOT {
namespace Shadow {
} // Of namespace ROOT::Shadow
} // Of namespace ROOT
namespace ROOT {
void MyClass_ShowMembers(void *obj, TMemberInspector &R__insp, char *R__parent);
TClass *MyClass_IsA(const void*);
void *new_MyClass(void *p = 0);
void *newArray_MyClass(Long_t size);
void delete_MyClass(void *p);
void deleteArray_MyClass(void *p);
void destruct_MyClass(void *p);
// Function generating the singleton type initializer
TGenericClassInfo *GenerateInitInstance(const MyClass*)
{
MyClass *ptr = 0;
static ROOT::TGenericClassInfo
instance("MyClass", MyClass::Class_Version(), "MyClass.h", 8,
typeid(MyClass), DefineBehavior(ptr, ptr),
&::MyClass::Dictionary, &MyClass_IsA, 0);
instance.SetNew(&new_MyClass);
instance.SetNewArray(&newArray_MyClass);
instance.SetDelete(&delete_MyClass);
instance.SetDeleteArray(&deleteArray_MyClass);
instance.SetDestructor(&destruct_MyClass);
return &instance;
}
// Static variable to force the class initialization
static ROOT::TGenericClassInfo *_R__UNIQUE_(Init) = GenerateInitInstance((const MyClass*)0x0); R__UseDummy(_R__UNIQUE_(Init));
}
//______________________________________________________________________________
TClass *MyClass::fgIsA = 0; // static to hold class pointer
//______________________________________________________________________________
const char *MyClass::Class_Name()
{
return "MyClass";
}
//______________________________________________________________________________
const char *MyClass::ImplFileName()
{
return ROOT::GenerateInitInstance((const MyClass*)0x0)->GetImplFileName();
}
//______________________________________________________________________________
int MyClass::ImplFileLine()
{
return ROOT::GenerateInitInstance((const MyClass*)0x0)->GetImplFileLine();
}
//______________________________________________________________________________
void MyClass::Dictionary()
{
fgIsA = ROOT::GenerateInitInstance((const MyClass*)0x0)->GetClass();
}
//______________________________________________________________________________
TClass *MyClass::Class()
{
if (!fgIsA) fgIsA = ROOT::GenerateInitInstance((const MyClass*)0x0)->GetClass();
return fgIsA;
}
//______________________________________________________________________________
void MyClass::Streamer(TBuffer &R__b)
{
// Stream an object of class MyClass.
UInt_t R__s, R__c;
if (R__b.IsReading()) {
Version_t R__v = R__b.ReadVersion(&R__s, &R__c); if (R__v) { }
TObject::Streamer(R__b);
R__b >> fList;
fRef.Streamer(R__b);
R__b >> fVector;
fClones->Streamer(R__b);
R__b.CheckByteCount(R__s, R__c, MyClass::IsA());
} else {
R__c = R__b.WriteVersion(MyClass::IsA(), kTRUE);
TObject::Streamer(R__b);
R__b << fList;
fRef.Streamer(R__b);
R__b << fVector;
fClones->Streamer(R__b);
R__b.SetByteCount(R__c, kTRUE);
}
}
//______________________________________________________________________________
void MyClass::ShowMembers(TMemberInspector &R__insp, char *R__parent)
{
// Inspect the data members of an object of class MyClass.
TClass *R__cl = MyClass::IsA();
Int_t R__ncp = strlen(R__parent);
if (R__ncp || R__cl || R__insp.IsA()) { }
R__insp.Inspect(R__cl, R__parent, "*fList", &fList);
R__insp.Inspect(R__cl, R__parent, "fRef", &fRef);
fRef.ShowMembers(R__insp, strcat(R__parent,"fRef.")); R__parent[R__ncp] = 0;
R__insp.Inspect(R__cl, R__parent, "*fVector", &fVector);
R__insp.Inspect(R__cl, R__parent, "*fClones", &fClones);
TObject::ShowMembers(R__insp, R__parent);
}
namespace ROOT {
// Return the actual TClass for the object argument
TClass *MyClass_IsA(const void *obj) {
return ((::MyClass*)obj)->IsA();
}
// Wrappers around operator new
void *new_MyClass(void *p) {
return p ? new(p) ::MyClass : new ::MyClass;
}
void *newArray_MyClass(Long_t size) {
return new ::MyClass[size];
}
// Wrapper around operator delete
void delete_MyClass(void *p) {
delete ((::MyClass*)p);
}
void deleteArray_MyClass(void *p) {
delete [] ((::MyClass*)p);
}
void destruct_MyClass(void *p) {
typedef ::MyClass current_t;
((current_t*)p)->~current_t();
}
} // end of namespace ROOT for class MyClass
/********************************************************
* MyClass_Dict.C
********************************************************/
#ifdef G__MEMTEST
#undef malloc
#undef free
#endif
extern "C" void G__cpp_reset_tagtableMyClass_Dict();
extern "C" void G__set_cpp_environmentMyClass_Dict() {
G__add_compiledheader("TROOT.h");
G__add_compiledheader("TMemberInspector.h");
G__add_compiledheader("MyClass.h");
G__cpp_reset_tagtableMyClass_Dict();
}
class G__MyClass_DictdOC_tag {};
void* operator new(size_t size,G__MyClass_DictdOC_tag* p) {
if(p && G__PVOID!=G__getgvp()) return((void*)p);
#ifndef G__ROOT
return(malloc(size));
#else
return(::operator new(size));
#endif
}
/* dummy, for exception */
#ifdef G__EH_DUMMY_DELETE
void operator delete(void *p,G__MyClass_DictdOC_tag* x) {
if((long)p==G__getgvp() && G__PVOID!=G__getgvp()) return;
#ifndef G__ROOT
free(p);
#else
::operator delete(p);
#endif
}
#endif
static void G__operator_delete(void *p) {
if((long)p==G__getgvp() && G__PVOID!=G__getgvp()) return;
#ifndef G__ROOT
free(p);
#else
::operator delete(p);
#endif
}
void G__DELDMY_MyClass_DictdOC() { G__operator_delete(0); }
extern "C" int G__cpp_dllrevMyClass_Dict() { return(30051515); }
/*********************************************************
* Member function Interface Method
*********************************************************/
/* MyClass */
static int G__MyClass_Dict_143_0_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
MyClass *p=NULL;
if(G__getaryconstruct()) p=new MyClass[G__getaryconstruct()];
else p=new MyClass;
result7->obj.i = (long)p;
result7->ref = (long)p;
result7->type = 'u';
result7->tagnum = G__get_linked_tagnum(&G__MyClass_DictLN_MyClass);
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_2_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,85,(long)MyClass::Class());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_3_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,67,(long)MyClass::Class_Name());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_4_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,115,(long)MyClass::Class_Version());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_5_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__setnull(result7);
MyClass::Dictionary();
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_6_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,85,(long)((const MyClass*)(G__getstructoffset()))->IsA());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_7_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__setnull(result7);
((MyClass*)(G__getstructoffset()))->ShowMembers(*(TMemberInspector*)libp->para[0].ref,(char*)G__int(libp->para[1]));
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_8_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__setnull(result7);
((MyClass*)(G__getstructoffset()))->Streamer(*(TBuffer*)libp->para[0].ref);
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_9_0(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__setnull(result7);
((MyClass*)(G__getstructoffset()))->StreamerNVirtual(*(TBuffer*)libp->para[0].ref);
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_0_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,67,(long)MyClass::DeclFileName());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_1_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,105,(long)MyClass::ImplFileLine());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_2_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,67,(long)MyClass::ImplFileName());
return(1 || funcname || hash || result7 || libp) ;
}
static int G__MyClass_Dict_143_3_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
G__letint(result7,105,(long)MyClass::DeclFileLine());
return(1 || funcname || hash || result7 || libp) ;
}
// automatic copy constructor
static int G__MyClass_Dict_143_4_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash)
{
MyClass *p;
void *xtmp = (void*)G__int(libp->para[0]);
p=new MyClass(*(MyClass*)xtmp);
result7->obj.i = (long)p;
result7->ref = (long)p;
result7->type = 'u';
result7->tagnum = G__get_linked_tagnum(&G__MyClass_DictLN_MyClass);
return(1 || funcname || hash || result7 || libp) ;
}
// automatic destructor
typedef MyClass G__TMyClass;
static int G__MyClass_Dict_143_5_1(G__value *result7,G__CONST char *funcname,struct G__param *libp,int hash) {
if(0==G__getstructoffset()) return(1);
if(G__getaryconstruct())
if(G__PVOID==G__getgvp())
delete[] (MyClass *)(G__getstructoffset());
else
for(int i=G__getaryconstruct()-1;i>=0;i--)
delete (MyClass *)((G__getstructoffset())+sizeof(MyClass)*i);
else delete (MyClass *)(G__getstructoffset());
G__setnull(result7);
return(1 || funcname || hash || result7 || libp) ;
}
/* Setting up global function */
/*********************************************************
* Member function Stub
*********************************************************/
/* MyClass */
/*********************************************************
* Global function Stub
*********************************************************/
/*********************************************************
* Get size of pointer to member function
*********************************************************/
class G__Sizep2memfuncMyClass_Dict {
public:
G__Sizep2memfuncMyClass_Dict() {p=&G__Sizep2memfuncMyClass_Dict::sizep2memfunc;}
size_t sizep2memfunc() { return(sizeof(p)); }
private:
size_t (G__Sizep2memfuncMyClass_Dict::*p)();
};
size_t G__get_sizep2memfuncMyClass_Dict()
{
G__Sizep2memfuncMyClass_Dict a;
G__setsizep2memfunc((int)a.sizep2memfunc());
return((size_t)a.sizep2memfunc());
}
/*********************************************************
* virtual base class offset calculation interface
*********************************************************/
/* Setting up class inheritance */
/*********************************************************
* Inheritance information setup/
*********************************************************/
extern "C" void G__cpp_setup_inheritanceMyClass_Dict() {
/* Setting up class inheritance */
if(0==G__getnumbaseclass(G__get_linked_tagnum(&G__MyClass_DictLN_MyClass))) {
MyClass *G__Lderived;
G__Lderived=(MyClass*)0x1000;
{
TObject *G__Lpbase=(TObject*)G__Lderived;
G__inheritance_setup(G__get_linked_tagnum(&G__MyClass_DictLN_MyClass),G__get_linked_tagnum(&G__MyClass_DictLN_TObject),(long)G__Lpbase-(long)G__Lderived,1,1);
}
}
}
/*********************************************************
* typedef information setup/
*********************************************************/
extern "C" void G__cpp_setup_typetableMyClass_Dict() {
/* Setting up typedef entry */
G__search_typename2("Version_t",115,-1,0,
-1);
G__setnewtype(-1,"Class version identifier (short)",0);
}
/*********************************************************
* Data Member information setup/
*********************************************************/
/* Setting up class,struct,union tag member variable */
/* MyClass */
static void G__setup_memvarMyClass(void) {
G__tag_memvar_setup(G__get_linked_tagnum(&G__MyClass_DictLN_MyClass));
{ MyClass *p; p=(MyClass*)0x1000; if (p) { }
G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MyClass_DictLN_TList),-1,-1,4,"fList=",0,"->");
G__memvar_setup((void*)NULL,117,0,0,G__get_linked_tagnum(&G__MyClass_DictLN_TRef),-1,-1,4,"fRef=",0,(char*)NULL);
G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MyClass_DictLN_TVector3),-1,-1,4,"fVector=",0,"->");
G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MyClass_DictLN_TClonesArray),-1,-1,4,"fClones=",0,"->");
G__memvar_setup((void*)NULL,85,0,0,G__get_linked_tagnum(&G__MyClass_DictLN_TClass),-1,-2,4,"fgIsA=",0,(char*)NULL);
}
G__tag_memvar_reset();
}
extern "C" void G__cpp_setup_memvarMyClass_Dict() {
}
/***********************************************************
************************************************************
************************************************************
************************************************************
************************************************************
************************************************************
************************************************************
***********************************************************/
/*********************************************************
* Member function information setup for each class
*********************************************************/
static void G__setup_memfuncMyClass(void) {
/* MyClass */
G__tag_memfunc_setup(G__get_linked_tagnum(&G__MyClass_DictLN_MyClass));
G__memfunc_setup("MyClass",700,G__MyClass_Dict_143_0_0,105,G__get_linked_tagnum(&G__MyClass_DictLN_MyClass),-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("Class",502,G__MyClass_Dict_143_2_0,85,G__get_linked_tagnum(&G__MyClass_DictLN_TClass),-1,0,0,3,1,0,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("Class_Name",982,G__MyClass_Dict_143_3_0,67,-1,-1,0,0,3,1,1,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("Class_Version",1339,G__MyClass_Dict_143_4_0,115,-1,G__defined_typename("Version_t"),0,0,3,1,0,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("Dictionary",1046,G__MyClass_Dict_143_5_0,121,-1,-1,0,0,3,1,0,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("IsA",253,G__MyClass_Dict_143_6_0,85,G__get_linked_tagnum(&G__MyClass_DictLN_TClass),-1,0,0,1,1,8,"",(char*)NULL,(void*)NULL,1);
G__memfunc_setup("ShowMembers",1132,G__MyClass_Dict_143_7_0,121,-1,-1,0,2,1,1,0,
"u 'TMemberInspector' - 1 - insp C - - 0 - parent",(char*)NULL,(void*)NULL,1);
G__memfunc_setup("Streamer",835,G__MyClass_Dict_143_8_0,121,-1,-1,0,1,1,1,0,"u 'TBuffer' - 1 - b",(char*)NULL,(void*)NULL,1);
G__memfunc_setup("StreamerNVirtual",1656,G__MyClass_Dict_143_9_0,121,-1,-1,0,1,1,1,0,"u 'TBuffer' - 1 - b",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("DeclFileName",1145,G__MyClass_Dict_143_0_1,67,-1,-1,0,0,3,1,1,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("ImplFileLine",1178,G__MyClass_Dict_143_1_1,105,-1,-1,0,0,3,1,0,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("ImplFileName",1171,G__MyClass_Dict_143_2_1,67,-1,-1,0,0,3,1,1,"",(char*)NULL,(void*)NULL,0);
G__memfunc_setup("DeclFileLine",1152,G__MyClass_Dict_143_3_1,105,-1,-1,0,0,3,1,0,"",(char*)NULL,(void*)NULL,0);
// automatic copy constructor
G__memfunc_setup("MyClass",700,G__MyClass_Dict_143_4_1,(int)('i'),G__get_linked_tagnum(&G__MyClass_DictLN_MyClass),-1,0,1,1,1,0,"u 'MyClass' - 11 - -",(char*)NULL,(void*)NULL,0);
// automatic destructor
G__memfunc_setup("~MyClass",826,G__MyClass_Dict_143_5_1,(int)('y'),-1,-1,0,0,1,1,0,"",(char*)NULL,(void*)NULL,1);
G__tag_memfunc_reset();
}
/*********************************************************
* Member function information setup
*********************************************************/
extern "C" void G__cpp_setup_memfuncMyClass_Dict() {
}
/*********************************************************
* Global variable information setup for each class
*********************************************************/
static void G__cpp_setup_global0() {
/* Setting up global variables */
G__resetplocal();
G__resetglobalenv();
}
extern "C" void G__cpp_setup_globalMyClass_Dict() {
G__cpp_setup_global0();
}
/*********************************************************
* Global function information setup for each class
*********************************************************/
static void G__cpp_setup_func0() {
G__lastifuncposition();
}
static void G__cpp_setup_func1() {
}
static void G__cpp_setup_func2() {
}
static void G__cpp_setup_func3() {
}
static void G__cpp_setup_func4() {
G__resetifuncposition();
}
extern "C" void G__cpp_setup_funcMyClass_Dict() {
G__cpp_setup_func0();
G__cpp_setup_func1();
G__cpp_setup_func2();
G__cpp_setup_func3();
G__cpp_setup_func4();
}
/*********************************************************
* Class,struct,union,enum tag information setup
*********************************************************/
/* Setup class/struct taginfo */
G__linked_taginfo G__MyClass_DictLN_TClass = { "TClass" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TBuffer = { "TBuffer" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TMemberInspector = { "TMemberInspector" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TObject = { "TObject" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TList = { "TList" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TRef = { "TRef" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TVector3 = { "TVector3" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_TClonesArray = { "TClonesArray" , 99 , -1 };
G__linked_taginfo G__MyClass_DictLN_MyClass = { "MyClass" , 99 , -1 };
/* Reset class/struct taginfo */
extern "C" void G__cpp_reset_tagtableMyClass_Dict() {
G__MyClass_DictLN_TClass.tagnum = -1 ;
G__MyClass_DictLN_TBuffer.tagnum = -1 ;
G__MyClass_DictLN_TMemberInspector.tagnum = -1 ;
G__MyClass_DictLN_TObject.tagnum = -1 ;
G__MyClass_DictLN_TList.tagnum = -1 ;
G__MyClass_DictLN_TRef.tagnum = -1 ;
G__MyClass_DictLN_TVector3.tagnum = -1 ;
G__MyClass_DictLN_TClonesArray.tagnum = -1 ;
G__MyClass_DictLN_MyClass.tagnum = -1 ;
}
extern "C" void G__cpp_setup_tagtableMyClass_Dict() {
/* Setting up class,struct,union tag entry */
G__get_linked_tagnum(&G__MyClass_DictLN_TClass);
G__get_linked_tagnum(&G__MyClass_DictLN_TBuffer);
G__get_linked_tagnum(&G__MyClass_DictLN_TMemberInspector);
G__get_linked_tagnum(&G__MyClass_DictLN_TObject);
G__get_linked_tagnum(&G__MyClass_DictLN_TList);
G__get_linked_tagnum(&G__MyClass_DictLN_TRef);
G__get_linked_tagnum(&G__MyClass_DictLN_TVector3);
G__get_linked_tagnum(&G__MyClass_DictLN_TClonesArray);
G__tagtable_setup(G__get_linked_tagnum(&G__MyClass_DictLN_MyClass),sizeof(MyClass),-1,29952,"MyClass is great",G__setup_memvarMyClass,G__setup_memfuncMyClass);
}
extern "C" void G__cpp_setupMyClass_Dict(void) {
G__check_setup_version(30051515,"G__cpp_setupMyClass_Dict()");
G__set_cpp_environmentMyClass_Dict();
G__cpp_setup_tagtableMyClass_Dict();
G__cpp_setup_inheritanceMyClass_Dict();
G__cpp_setup_typetableMyClass_Dict();
G__cpp_setup_memvarMyClass_Dict();
G__cpp_setup_memfuncMyClass_Dict();
G__cpp_setup_globalMyClass_Dict();
G__cpp_setup_funcMyClass_Dict();
if(0==G__getsizep2memfunc()) G__get_sizep2memfuncMyClass_Dict();
return;
}
class G__cpp_setup_initMyClass_Dict {
public:
G__cpp_setup_initMyClass_Dict() { G__add_setup_func("MyClass_Dict",(G__incsetup)(&G__cpp_setupMyClass_Dict)); G__call_setup_funcs(); }
~G__cpp_setup_initMyClass_Dict() { G__remove_setup_func("MyClass_Dict"); }
};
G__cpp_setup_initMyClass_Dict G__cpp_setup_initializerMyClass_Dict;
/********************************************************************
* MyClass_Dict.h
********************************************************************/
#ifdef __CINT__
#error MyClass_Dict.h/C is only for compilation. Abort cint.
#endif
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define G__ANSIHEADER
#define G__DICTIONARY
#include "G__ci.h"
extern "C" {
extern void G__cpp_setup_tagtableMyClass_Dict();
extern void G__cpp_setup_inheritanceMyClass_Dict();
extern void G__cpp_setup_typetableMyClass_Dict();
extern void G__cpp_setup_memvarMyClass_Dict();
extern void G__cpp_setup_globalMyClass_Dict();
extern void G__cpp_setup_memfuncMyClass_Dict();
extern void G__cpp_setup_funcMyClass_Dict();
extern void G__set_cpp_environmentMyClass_Dict();
}
#include "TROOT.h"
#include "TMemberInspector.h"
#include "MyClass.h"
#ifndef G__MEMFUNCBODY
#endif
extern G__linked_taginfo G__MyClass_DictLN_TClass;
extern G__linked_taginfo G__MyClass_DictLN_TBuffer;
extern G__linked_taginfo G__MyClass_DictLN_TMemberInspector;
extern G__linked_taginfo G__MyClass_DictLN_TObject;
extern G__linked_taginfo G__MyClass_DictLN_TList;
extern G__linked_taginfo G__MyClass_DictLN_TRef;
extern G__linked_taginfo G__MyClass_DictLN_TVector3;
extern G__linked_taginfo G__MyClass_DictLN_TClonesArray;
extern G__linked_taginfo G__MyClass_DictLN_MyClass;
/* STUB derived class for protected member access */
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:16 MET