Masaharu Goto [MXJ02154@nifty.ne.jp] wrote:
> 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.
Strictly, I believe the '@' symbol is a legal identifier symbol. I have
seen code which uses it, though it is rare. This program:
int main() {
int a@var = 1;
return a@var;
}
compiles and runs fine with gcc. (though like numbers the '@' cannot be
used as the first character of an identifier)
> 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.
C/C++ has a power operator: pow(x,y). Okay, so it's not an operator... :(
But it does work within root.
> But, I understand your point. I'll try to provide an option to
> disable ** operator with a compile flag.
Well, with the goal for Cint programs to be compilable, this is very
dangerous. It means that compiled code containing a ** or @ will behave
differently than interpreted code, or simply not compile.
It is unfortunate that C++ did not include an exponentiation operator.
I find it ugly in my code to use pow(x, 2.0) rather than x^2 or x**2.
But I think it's too late to reverse that decision without unfortunate
consequences.
I hope you will consider removing it. How widely used is this feature
anyway?
Cheers,
-- 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:01 MET