comp.lang.ada
 help / color / mirror / Atom feed
From: Hyman Rosen <hyrosen@mail.com>
Subject: Re: proposal for new assignment operators
Date: Thu, 03 Jul 2003 03:07:28 GMT
Date: 2003-07-03T03:07:28+00:00	[thread overview]
Message-ID: <Q5NMa.632$i57.44@nwrdny02.gnilink.net> (raw)
In-Reply-To: <3F038B77.2F2E41B7@adaworks.com>

Richard Riehle wrote:
 > For limited types, assignment is never possible.  Therefore,
> overloading assignment is not possible.

That "therefore" doesn't actually follow. In C++, to make assignment
impossible, you declare a private assignment operator. Surely it would
be no problem to say that assignment may not be overloaded for limited
types.

> It is rare that one even needs to override the assignment operator
> on a non-limited type.   There is a distinction here that will not
> be immediately obvious to the C++ programmer.

It's not that frequent to need to do it in C++ either, as long as you
avoid low-level types such as pointers that are better handled by
encapsulation in proper holder classes. Of course, in C++ you can define
assignment between different types, and then you do find yourself writing
assignment operators for describing that operation. For example, I might
have a simple
     template <typename T> struct ObjectHolder
     {
         T theObject;

         template <typename O>
         ObjectHolder &operator=(const ObjectHolder<O> &other)
         { theObject = other.theObject; return *this; }
      };
so that I can assign one kind of ObjectHolder to another. (This assignment
will be legal only when the underlying types are assignment compatible, and
will otherwise result in a compiler error message, so we are not decreasing
type safety here.)

> For a lot of very good reasons, the designers eschewed the C++ approach
> in favor of the Adjust approach. These reasons are discussed in some of
 > the literature that covers the rationale for the language design.

I looked at the section on Controlled types (7.4) in the Rationale and
didn't see any discussion about this, except for a remark about returning
limited types from functions. This leads me to believe that the "lot of
very good reasons" have to do with technical aspects of preserving
existing parts of Ada rather than abstract notions of how assignment
should be done properly. Not that there's anything wrong with that.




  reply	other threads:[~2003-07-03  3:07 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-25  6:23 proposal for new assignment operators Russ
2003-06-25  8:49 ` Preben Randhol
2003-06-25 10:28 ` Dmitry A. Kazakov
2003-06-25 10:36   ` Lutz Donnerhacke
2003-06-25 17:49     ` Dmitry A. Kazakov
2003-06-26 10:37       ` Lutz Donnerhacke
2003-06-27  8:15         ` Dmitry A. Kazakov
2003-06-27 14:21           ` Hyman Rosen
2003-06-25 19:17   ` Russ
2003-06-25 10:39 ` Larry Kilgallen
2003-06-25 12:06   ` Preben Randhol
2003-06-25 13:40     ` Peter Hermann
2003-06-25 22:12     ` Georg Bauhaus
2003-06-26  8:03       ` Preben Randhol
2003-06-26  8:25         ` Vinzent Hoefler
2003-06-26 15:02       ` Stephen Leake
2003-06-26 17:54         ` Georg Bauhaus
2003-06-26 18:32           ` Stephen Leake
2003-06-27 13:21             ` Georg Bauhaus
2003-06-26 16:32       ` Preben Randhol
2003-06-26 17:41         ` Georg Bauhaus
2003-06-26 17:58           ` Preben Randhol
2003-06-26  2:36     ` Steve
2003-06-26  2:33   ` Russ
2003-06-26 23:02     ` John R. Strohm
2003-06-25 14:07 ` Frank J. Lhota
2003-06-25 16:27   ` Warren W. Gay VE3WWG
2003-06-26  3:09     ` Russ
2003-06-26  6:27       ` Vinzent Hoefler
2003-06-26 10:49       ` Larry Kilgallen
2003-06-26 18:08         ` Russ
2003-06-26 18:19           ` Preben Randhol
2003-06-26 18:45           ` Larry Kilgallen
2003-07-02 15:57             ` Kevin Cline
2003-07-02 17:10               ` tmoran
2003-07-02 18:27                 ` Hyman Rosen
2003-07-02 20:20                   ` tmoran
2003-07-03  1:48               ` Richard Riehle
2003-07-03  3:07                 ` Hyman Rosen [this message]
2003-07-03  5:12                   ` Randy Brukardt
2003-07-03 13:03                     ` Hyman Rosen
2003-07-03 14:46                   ` Stephen Leake
2003-07-04  1:17                   ` James Rogers
2003-07-07  4:29                     ` Hyman Rosen
2003-07-08  1:10                       ` James Rogers
2003-07-08 13:59                         ` Hyman Rosen
2003-07-09  0:12                           ` James Rogers
2003-07-09  3:00                             ` Hyman Rosen
2003-07-07 15:36                 ` Matthew Heaney
2003-07-14  1:39                   ` Richard Riehle
2003-07-14  2:54                     ` Hyman Rosen
2003-07-16  3:14                       ` Richard Riehle
2003-06-27 13:34       ` Georg Bauhaus
2003-06-27 23:12         ` Russ
2003-06-27 23:21           ` Larry Kilgallen
2003-06-28 18:51             ` Russ
2003-06-27 18:02       ` Warren W. Gay VE3WWG
2003-06-28  3:50         ` Russ
2003-06-30 15:58           ` Warren W. Gay VE3WWG
2003-06-25 19:44 ` Bill Findlay
2003-06-26  2:06   ` Russ
2003-06-26  2:33     ` Bill Findlay
2003-06-26  5:54     ` Karel Miklav
2003-06-26 12:17     ` Georg Bauhaus
2003-06-26 12:52     ` Joseph Dalton
2003-06-26 18:11     ` Frank J. Lhota
  -- strict thread matches above, loose matches on Subject: below --
2003-06-27  5:35 christoph.grein
2003-06-27  9:57 ` Preben Randhol
2003-06-27 14:11 ` Georg Bauhaus
replies disabled

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