From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,e5eb8ca5dcea2827 X-Google-Attributes: gid103376,public From: Laurent Guerby Subject: Re: Ada OO Mechanism Date: 1999/05/28 Message-ID: <86n1ypqh9n.fsf@ppp-159-70.villette.club-internet.fr>#1/1 X-Deja-AN: 483166628 References: <7i05aq$rgl$1@news.orbitworld.net> <7i17gj$1u1k@news2.newsguy.com> <7icgkg$k4q$1@nnrp1.deja.com> <3749E9EC.2842436A@aasaa.ofe.org> <7id2eo$fag@drn.newsguy.com> <3749FF7D.F17CE16A@aasaa.ofe.org> <374AC676.F7AE0772@lmco.com> <7ieuja$5v9@news1.newsguy.com> <7ifd6l$bmf@sjx-ixn1.ix.netcom.com> <7ihf6i$4hv@dfw-ixnews10.ix.netcom.com> X-Trace: front1.grolier.fr 927909533 6312 195.36.159.70 (28 May 1999 16:38:53 GMT) Organization: Club-Internet (France) NNTP-Posting-Date: 28 May 1999 16:38:53 GMT Newsgroups: comp.lang.ada Date: 1999-05-28T16:38:53+00:00 List-Id: Hyman Rosen writes: > [...] > From a little fooling around with your code above > and gnat, and the Rationale, it looks like the compiler has to examine > the code that attempts to initialize a T'Class variable and allocate > the maximum space for it that that code would require. C++ doesn't do > any of that - C++ coders would be using dynamic allocation and pointers > or references to pass around arbitray subclasses. Interesting. [...] I think most Ada implementation use a secondary stack where such dynamix sized beasts are built, there's no need for "maximum space" allocation. Note that this feature of Ada is not linked to OO, the same mechanism is in place for function returning dynamically sized arrays. Of course the cost of this is spurious copying if the compiler isn't very clever. --LG