From: dmitry6243@my-deja.com
Subject: Re: Constructors/Destructors in Ada95
Date: 2000/10/25
Date: 2000-10-25T00:00:00+00:00 [thread overview]
Message-ID: <8t6pi9$9s8$1@nnrp1.deja.com> (raw)
In-Reply-To: 39F6D201.73C006FA@acm.org
In article <39F6D201.73C006FA@acm.org>,
Marin David Condic <mcondic.nospam@acm.org> wrote:
> Ray Blaak wrote:
>
> > I really would like to be able to do:
> >
> > procedure ":="(target : in out T; source : in T);
> >
> > so as to have complete control over what is happening. I vaguely recall some
> > rationale from the Ada 9X discussions for why user-defined assignment per se
> > was not incorporated. Does anyone remember?
>
> Does a
> statement like: "X < Y ;" make sense in Ada?) As a procedure, you'd have to allow
> procedures to have symbol names - which opens up a whole can of worms. Further, it
> would mean allowing "infix procedures" which is hard to make sense of - or at least
> could make programs look really strange.
It would be nice (it is in my private Ada to-do list for a long time):
function "*" (Left, Right : Matrix) return Matrix; -- Produces a new object
procedure "*" (Left : in out Matrix; Right : Matrix); -- Multiplies Left to
Right "in-place"
So I would count it as an advantage. There is another. If you have
procedure ":="(target : in out T; source : in T);
then your assignment may take a look on the left-side object before its
destruction. Ada's Adjust is much more (IMO too much) specialized.
> I'm sure there are dozens of other reasons why it was decided not to provide a
> means of letting the user define assignment. I'd think it would require perverting,
> warping and twisting language concepts too much.
I think that the major reason was the decision to limit user defined
assigments by Controlled types. Doing so you must drop ":=" form, which
ontherwise would permanently remind you that actually all types might be
assigned (:-))
> (Look at the semantics of C++
> construction/destruction sometime - especially as it applies to function parameters
> - and see what an abomination that can become! :-)
So let's show them how to do it right (:-))
--
Regards,
Dmitry Kazakov
Sent via Deja.com http://www.deja.com/
Before you buy.
next prev parent reply other threads:[~2000-10-25 0:00 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-10-18 0:00 Constructors/Destructors in Ada95 Francois Godme
2000-10-19 0:00 ` Ted Dennison
2000-10-19 0:00 ` Marin David Condic
2000-10-19 0:00 ` tmoran
2000-10-19 0:00 ` Francois Godme
2000-10-19 0:00 ` Ted Dennison
2000-10-20 0:00 ` Tucker Taft
2000-10-20 0:00 ` Francois Godme
2000-10-21 0:00 ` Marin David Condic
2000-10-23 0:00 ` Francois Godme
2000-10-24 0:00 ` Ray Blaak
2000-10-25 0:00 ` Francois Godme
2000-10-25 0:00 ` Marin David Condic
2000-10-25 0:00 ` dmitry6243 [this message]
2000-10-25 0:00 ` mark.biggar
2000-10-26 11:44 ` dmitry6243
2000-10-26 13:25 ` Robert A Duff
2000-10-27 8:10 ` dmitry6243
2000-10-26 17:55 ` tmoran
2000-10-27 8:10 ` dmitry6243
2000-10-26 21:31 ` Tucker Taft
2000-10-27 8:46 ` dmitry6243
2000-10-25 0:00 ` Pascal Obry
2000-10-26 0:00 ` dmitry6243
2000-10-27 7:12 ` Ray Blaak
2000-10-27 18:11 ` Francois Godme
2000-10-30 11:36 ` Robert A Duff
2000-10-30 22:03 ` dale
2000-10-22 0:00 ` rwilson007007
2000-10-22 0:00 ` Francois Godme
2000-10-24 0:00 ` rwilson007007
-- strict thread matches above, loose matches on Subject: below --
2000-10-29 22:51 rwilson007007
2000-10-30 4:03 ` Ray Blaak
2000-10-30 12:13 ` Marin David Condic
2000-10-30 16:39 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox