andy@rocky.STANFORD.EDU (Andy Freeman) (09/07/87)
The pointer definitions do the right thing with swap( i, a[i] ), as
long as i isn't a register variable. (Rahul Dhesi <dhesi@bsu-cs.UUCP>
mentioned this.) They also fail on swap( a, b ) when a and b are
arrays. (Steve Emmerson, steve@umigw.MIAMI.EDU, caught this one;
I hadn't thought of it.)
These problems come from c; cpp causes one additional problem.
Swap should work no matter what names are used outside the
definition. swap( __t, __x ) should work; all of the proposed
definitions fail if the argument has the "wrong" name.
-andy
--
Andy Freeman
UUCP: {arpa gateways, decwrl, sun, hplabs, rutgers}!sushi.stanford.edu!andy
ARPA: andy@sushi.stanford.edu
(415) 329-1718/723-3088 home/cubicle