Hi ROOT'ers,
I know this question has been raised before, (see roottalk entry
http://root.cern.ch/root/roottalk/roottalk00/1440.html) but it didn't
seem like there was much ado, so I thought I'd raise some.
It seems that the interactive ROOT (or CINT!?) has some problem with
the 0 pointer as argument where it expects an object pointer. It
complains about missing method or bad arguments, as if 0L isn't a
valid pointer for _any_ class! As far as I can gather from the
ANSI/ISO C++ standard section 4.10, 0L is a valid pointer for _any_
class, and should automatically be converted to the prober class
pointer.
I first got aware of this problem when I used g2root to get a detector
definition. I've abstracted the basic code below:
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 2.24/04 5 May 2000 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************
Compiled with thread support.
CINT/ROOT C/C++ Interpreter version 5.14.37, Apr 29 2000
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TMaterial* mat = new TMaterial("mat","mat", 1, 1, 1);
root [1] TBRIK* brik = new TBRIK("brik","brik", "mat", 1, 1, 1)
root [2] TNode* node = new TNode("node","node", brik,0,0,0,0)
Error: Can't call TNode::TNode("node","node",brik,0,0,0,0) in current scope FILE:/tmp/filetzcH8z_cint LINE:1
Possible candidates are...
filename line:size busy function type and name (in TNode)
(compiled) 0:0 0 public: TNode TNode(void);
(compiled) 0:0 0 public: TNode TNode(const char* name,const char* title,const char* shapename,Double_t x=0,Double_t y=0,Double_t z=0,const char* matrixname,Option_t* option);
(compiled) 0:0 0 public: TNode TNode(const char* name,const char* title,TShape* shape,Double_t x=0,Double_t y=0,Double_t z=0,TRotMatrix* matrix=0,Option_t* option);
(compiled) 0:0 0 public: TNode TNode(TNode&);
filename line:size busy function type and name (in TNamed)
filename line:size busy function type and name (in TObject)
filename line:size busy function type and name (in TAttLine)
filename line:size busy function type and name (in TAttFill)
filename line:size busy function type and name (in TAtt3D)
*** Interpreter error recovered ***
root [3]
This is on a Pentium III, running Redhat Linux 6.1. The ROOT
distribution is the standard one from
ftp://root.cern.ch/root/root_v2.24.Linux.2.2.14.tar.gz
(no patches).
If this has been fixed in 2.24.05, sorry to bother you with this.
Cheers,
Christian -----------------------------------------------------------
Holm Christensen Phone: (+45) 35 35 96 91
Sankt Hansgade 23, 1. th. Office: (+45) 353 25 305
DK-2200 Copenhagen N Web: www.nbi.dk/~cholm
Denmark Email: cholm@nbi.dk
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:25 MET