Dear Masaharu, > we could add something like TObjectGetname() in TNamed. my example with TNamed & TObject was only an example. Really I need to call Streamer for all classes inherited from TObject. Thank you very much for proposal, but it will not help me. Actually I tried to use CINT because I did not found ho to do it in plain C++. The problem is how to call all Streamer(s) of arbitrary class inherited from TObject via pointer. Anyway, thank you very much, I will try to find another way. Victor Masaharu Goto wrote: > > Dear Victor, > > As far as I can think, there is no fancy solution. As a workaround, > we could add something like TObjectGetname() in TNamed. > > class TNamed : public TObject { > public: > ... > TString Getname() const; > TString TObjectGetname() const { return(TObject::Getname()); } > ... > }; > > Could this be your solution? > > Thank you > Masaharu Goto > > >Dear Masaharu, > >> Dictionary size is already too big. I think it is better not doing > >> about change. > > > >I agree, that it is too much to increase already big dictionary. > >I was asking really about workaround. But it is probably too complicated. > >Actually I need it only for Streamer() but even for this only it is too much > > > >I tried to find workaround in C++ but also failed. > > > >In plain g++ i found > > > > TNamed tm("AAA","BBB") > > > > tm.TObject::Getname(); //gives "TNamed" which is correct > > but > > > > char *(TNamed::gn)(); > > gn = &TNamed::TObject::Getname; > > (tm.*gn)(); //gives "AAA" which is wrong > > > >Thank you, > >Victor -- Victor M. Perevoztchikov perev@bnl.gov perev@vxcern.cern.ch Brookhaven National Laboratory MS 510A PO Box 5000 Upton NY 11973-5000 tel office : 631-344-7894; fax 631-344-4206; home 631-345-2690
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET