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=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,dbcfe2b0a74da57e X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!postnews.google.com!y42g2000hsy.googlegroups.com!not-for-mail From: Maciej Sobczak Newsgroups: comp.lang.ada Subject: Re: Inherited Methods and such Date: Thu, 20 Sep 2007 06:52:33 -0700 Organization: http://groups.google.com Message-ID: <1190296353.624737.150940@y42g2000hsy.googlegroups.com> References: <1190039166.449906.15070@g4g2000hsf.googlegroups.com> <1190041908.492024.263110@19g2000hsx.googlegroups.com> <1190060534.958182.51800@d55g2000hsg.googlegroups.com> <87tzptuhku.fsf@ludovic-brenta.org> <1190125656.071013.303640@22g2000hsm.googlegroups.com> <1ds7l1l7oeyrx.1cpsvrpkikour.dlg@40tude.net> <1190147965.676457.123000@d55g2000hsg.googlegroups.com> <1co37tau98gct.axsglmqh0xu9$.dlg@40tude.net> <1190213376.707449.146640@g4g2000hsf.googlegroups.com> <1fl2wnziigxfd.1fjbag2hh8sbc$.dlg@40tude.net> <1190239986.762473.204290@k79g2000hse.googlegroups.com> <1rw45b3rmvmcr$.1df4wst5oknbl$.dlg@40tude.net> NNTP-Posting-Host: 137.138.37.241 Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-Trace: posting.google.com 1190296353 22107 127.0.0.1 (20 Sep 2007 13:52:33 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 20 Sep 2007 13:52:33 +0000 (UTC) In-Reply-To: <1rw45b3rmvmcr$.1df4wst5oknbl$.dlg@40tude.net> User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070724 Red Hat/1.5.0.12-0.3.slc3 Firefox/1.5.0.12,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: y42g2000hsy.googlegroups.com; posting-host=137.138.37.241; posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0 Xref: g2news2.google.com comp.lang.ada:2050 Date: 2007-09-20T06:52:33-07:00 List-Id: On 20 Wrz, 10:12, "Dmitry A. Kazakov" wrote: > > My expectations are different during the lifetime of the object. Hence > > - the behavior that I expect is time-variant. Hence - the type changes > > over time. End of story. > > If you say that an object of the type T1 can take values of the type T2, > such that not T1<:T2, then either: What is T1<:T2 ? Whatever it is, your assumptions are still wrong. There is no point in discussing the concept of "taking the value" here, because the value is meaningful in the context of its type only. The object under construction (in C++) changes its dynamic type *at the same time* acquiring new components. This is crucial. The object acquires new components while it traverses the constructor chain and these new components obviously take part in value interpretation of the whole. There is no such thing as object of type T taking new value, nor the value changing type. Neither value nor type is constant here. They flow together as the object is progressively constructed/destructed and every single moment in time the object has a valid value of *some* type. > Huh, let us take this and consider the predicate "dynamically". Then: > > forall x of T, dynamically(x) [...] > For this > reason any object has exactly one type. No more, no less. Yes. Every single moment the object has one type. But the time is passing and the object's classification flows together with time. This can be observed with dispatching operations. > One can argue for alternative notions of type and typed language, but they > likely would not be consistent with behavioral point of view, which you > have already subscribed to, or? Or we get stuck with the idea that either T or value must be invariant. This is not true in C++. -- Maciej Sobczak http://www.msobczak.com/