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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,90108ed846e3f1bf X-Google-Attributes: gid103376,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Mon, 02 Mar 2009 17:13:09 +0100 From: Georg Bauhaus User-Agent: Thunderbird 2.0.0.19 (Macintosh/20081209) MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Why constructing functions is a mess [was Language lawyer question: task activation References: <24bdd0df-9554-49de-9c5e-99572c9cdf34@g38g2000yqd.googlegroups.com> <1v0f2pkso7p50.vein84avao5t.dlg@40tude.net> <499ede41$0$32665$9b4e6d93@newsspool2.arcor-online.net> <1lhxmo6l2ypux.bei2ffp1m3e$.dlg@40tude.net> <499f2c59$0$31868$9b4e6d93@newsspool3.arcor-online.net> <1vcaimc8kjj30$.kf3rsd670ebp$.dlg@40tude.net> <1gxn72yzshp07$.6ytqydmmz37u.dlg@40tude.net> <49a92c29$0$32670$9b4e6d93@newsspool2.arcor-online.net> <1wzjy9pzbft1m.1lut7nszfkzmp$.dlg@40tude.net> <49a95a12$0$31347$9b4e6d93@newsspool4.arcor-online.net> <49a97231$0$30236$9b4e6d93@newsspool1.arcor-online.net> <1mjbcbequf1wz.1o3nwuz7oqteo.dlg@40tude.net> <49a984f6$0$30226$9b4e6d93@newsspool1.arcor-online.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <49ac0595$0$31344$9b4e6d93@newsspool4.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 02 Mar 2009 17:13:09 CET NNTP-Posting-Host: f446a8b4.newsspool4.arcor-online.net X-Trace: DXC=5i3f8>LC[@O6PJ?[X6JIXE4IUK Dmitry A. Kazakov schrieb: > A derived type works fine: > > type My_Plant is new Power_Plant with null record; > function Create return My_Plant is > begin > return (Power_Plant'(Create ("my plant")) with null record); > end Create; > Now, the point is that this model of construction does not work with > abstract types because of fundamental reasons. It is not (<>) which is > broken, but the construction model. OK, got your point, sorry for being so dense. Should the following work for unconstrained abstract Power_Plant? (some day, e.g. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34507 ) return (Power_Plant with null record); Would you consider dropping a note on AI05-067 to the ARG list? There is an not by Stephen W. Baird that mentions (the possibility (or not) of) dispatching to abstract subprograms in a related case (I think).