comp.lang.ada
 help / color / mirror / Atom feed
* Overloading "and"
@ 1986-10-31 14:25 Mike Linnig
  0 siblings, 0 replies; 2+ messages in thread
From: Mike Linnig @ 1986-10-31 14:25 UTC (permalink / raw)


Here's something that I thought was illegal.  

We've all seen Ada programs that overloaded the standard operators
("+","-","*","/"). We've also seen people overload the concatination
operator "&".  But I didn't think it was possible to overload the
"AND" and "OR" operators.  

The following compiles without error on DEC Ada:

     PACKAGE test is

       function "and"(l,r: integer) return integer;

     END test;
     ----------------------------------------------------------------------
     WITH test; USE test;

     PROCEDURE mytest IS

     a, b,c : integer;

     BEGIN
       a := b AND c;		-- a call to the function TEST."AND" 
     END mytest;
     ----------------------------------------------------------------------

Many thanks to Renzo Bianchi and Gary Smith of TI, Colorado Springs for
bringing this to my attention.

Live and learn.

	-- Mike Linnig, 
	   Texas Instruments

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Overloading "and"
       [not found] <1146@ucbvax.berkeley.edu>
@ 1986-11-06 15:47 ` stt
  0 siblings, 0 replies; 2+ messages in thread
From: stt @ 1986-11-06 15:47 UTC (permalink / raw)



It is illegal to overload "and then" and "or else" (as these
are "operations" but not "operators"), but it is
perfectly legal to overload the logical operators "and,"
"or," and "xor."

The only restriction about overloading operators has to
do with "=" and "/=."  You may not separately overload "/=,"
and you may only define "=" for limited types, or by renaming
another "=."   Thanks to generics, you can in fact
define "=" for any type by doing so in an instantiation
of a generic passing the type as the actual matching a formal
limited private type.

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1986-11-06 15:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1986-10-31 14:25 Overloading "and" Mike Linnig
     [not found] <1146@ucbvax.berkeley.edu>
1986-11-06 15:47 ` stt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox