Hello Bob,
I am glad you brought up this issue.
Power operator is Cint's original enhancement. It is implemented
in 2 ways, '**' and '@'. Both 2**3 and 2@3 yield 8.
I originally made Cint in order to replace BASIC programming
environment when I did engineering work. In that field, power
operator is a 'must' items to have. I knew '**' causes problem
in C/C++ in strict sense, but I saw more benefit than problem.
But, I understand your point. I'll try to provide an option to
disable ** operator with a compile flag.
Thank you
Masaharu Goto
>
>Date: Thu, 27 Sep 2001 16:51:29 -0500
>From: Bob McElrath <mcelrath@draal.physics.wisc.edu>
>To: roottalk@pcroot.cern.ch
>Subject: [ROOT] Cint implements power? (** operator)
>User-Agent: Mutt/1.2i
>
>I don't know why this is implemented in Cint, but it was left out of C++
>for good reason, and here it is:
> root [11] TH1D* hist = (TH1D*)gROOT->FindObject("hist-costheta");
> root [12] *hist = hist->GetBinWidth(1)**hist
> (const double)0.00000000000000000e+00
> root [13] 2**3
> (const int)8
>
>The second statement (line 12) is not syntactically ambiguous in C++
>because there is no ** operator. Apparently it is in Cint, however...
>
>Would it be possible to remove the ** operator from cint, and avoid this
>ambiguity? A ** operator could cause some very hard-to-track-down bugs.
>
>Thanks,
>-- Bob
>
>Bob McElrath (rsmcelrath@students.wisc.edu)
>Univ. of Wisconsin at Madison, Department of Physics
>
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:00 MET