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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,7a180be12347b9d3 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,7a180be12347b9d3 X-Google-Attributes: gid1108a1,public X-Google-ArrivalTime: 2002-02-13 06:32:58 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!nntp.abs.net!uunet!dca.uu.net!ash.uu.net!spool0901.news.uu.net!reader0903.news.uu.net!not-for-mail Message-ID: <3C6A7918.1060707@mail.com> Date: Wed, 13 Feb 2002 09:32:56 -0500 From: Hyman Rosen User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:0.9.8+) Gecko/20020205 X-Accept-Language: en-us MIME-Version: 1.0 Newsgroups: comp.lang.ada,comp.object Subject: Re: Merits of re-dispatching [LONG] References: <3c62524f.93369796@News.CIS.DFN.DE> <1013094178.985786@master.nyc.kbcfp.com> <3c6392e8.2400843@News.CIS.DFN.DE> <1013192956.289787@master.nyc.kbcfp.com> <3c68ceeb.88774578@News.CIS.DFN.DE> <3C698B2E.9070104@mail.com> <3c6a2fb2.66346125@News.CIS.DFN.DE> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Organization: KBC Financial Products Cache-Post-Path: master.nyc.kbcfp.com!unknown@fixedcost.nyc.kbcfp.com X-Cache: nntpcache 2.3.3 (see http://www.nntpcache.org/) NNTP-Posting-Host: 204.253.250.10 X-Trace: 1013610782 reader3.ash.ops.us.uu.net 5149 204.253.250.10 Xref: archiver1.google.com comp.lang.ada:19967 comp.object:34289 Date: 2002-02-13T09:32:56-05:00 List-Id: Dmitry A. Kazakov wrote: > Does the C++ standard require this? I do not know, but if yes, then > C++ is even "better" than I used to think. (:-)) The standard doesn't specify an implementation, of course, but yes, it requires this behavior. Under the covers, this, combined with multiple inheritance and a desire for efficiency in the most common cases, makes the implementation of constructors and destructors potentially very complicated. Fortunately, this just has to be figured out once by the compiler vendor. To the user, everything looks and acts just like they expect (assuming their expectations are correct :-). The gcc team has developed an ABI for C++ that discusses these issues. See . It has some relevance to Ada since GNAT's tagged types are compatible with equivalent C++ classes. > I remember one C run-time library implementation, which had printf > modifying the format string and restoring it before return. It was a > GREAT idea. Unfortunately, the compiler allocated string literals in > the read-only memory. (:-)) C++, like Ada, integrates its libraries into the language specification, so vendors are allowed to use whatever system knowledge or magic they want to implement them. It helps if the library team and compiler team talk to each other :-)