Article View: comp.std.c++
Article #176Re: Exponentiation operator proposal
From: Gnanasekaran Swaminathan
Date: Tue, 15 Sep 1992 20:18
Date: Tue, 15 Sep 1992 20:18
50 lines
2220 bytes
2220 bytes
matt@physics2.berkeley.edu (Matt Austern) writes:
: I believe that an exponentiation operator would be of genuine benefit
: to C++ scientific programmers, and I believe that we who write
: scientific code are justified in asking that it be included. I don't
: think, however, that we are justified in asking for a change to the
: language that makes life harder for other C++ programmers. Using **
: to denote exponentiation does exactly that: it changes the meaning of
: legal C++ code, and it makes a useful programming technique more
: difficult.
:
: It is possible to implement an exponentiation operator so that the
: extension to the language will have no effect at all for people who
: don't deliberately use the new feature. This is a better idea.
Did you consider operator () for exponentiation?
It seems to have correct precedence and doesn't need new tokens to be
introduced.
// if op () is available for exp
double e= -10(2); // e = -100.0
double d=10;
double *p = &e;
e = d(3) - (*p)(2) + d + 3; // e = -8987.0
// status quo
class Double {
double d;
public:
Double(double f): d(f) {}
operator double () { return d; }
Double operator - () { return -d; }
Double operator () (int i) { ... }
Double operator () (double f) { return pow(d,f); }
// other ops ...
};
Double a(10); // a = 10.0
double d=a(5); // d = 10000.0
a = a(3.0)*2.5; // a = 2500.0
Double b(2); // b = 2
a = -b(4) + 3*b(3) - 2*b(2) + b + 3; // a = 5.0
Similary you can define your own Int as well and use it wherever
you want int and exp op.
-Sekar
Technical Details
Message-ID:
<1992Sep15.201801.26417@murdoch.acc.Virginia.EDU>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!malgudi.oar.net!caen!uvaarpa!murdoch!virginia.edu!gs4tReferences:
<23660@alice.att.com> <1992Sep13.193507.27813@ima.isc.com> <MATT.92Sep14225005@physics2.berkeley.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.std.c++,comp.lang.c++ Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!malgudi.oar.net!caen!uvaarpa!murdoch!virginia.edu!gs4t From: gs4t@virginia.edu (Gnanasekaran Swaminathan) Subject: Re: Exponentiation operator proposal Message-ID: <1992Sep15.201801.26417@murdoch.acc.Virginia.EDU> Sender: usenet@murdoch.acc.Virginia.EDU Reply-To: gs4t@virginia.edu (Gnanasekaran Swaminathan) Organization: University of Virginia References: <23660@alice.att.com> <1992Sep13.193507.27813@ima.isc.com> <MATT.92Sep14225005@physics2.berkeley.edu> Date: Tue, 15 Sep 1992 20:18:01 GMT Lines: 50