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: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: Bart Samwel Subject: Re: OO, C++, and something much better! Date: 1997/01/10 Message-ID: <32D66934.794B@wi.leidenuniv.nl>#1/1 X-Deja-AN: 208955875 references: content-type: text/plain; charset=us-ascii organization: Dept. of Math. and Comp.Sci.; Leiden Univ.; Leiden; the Netherlands mime-version: 1.0 newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng x-mailer: Mozilla 2.0 (X11; I; IRIX 5.3 IP22) Date: 1997-01-10T00:00:00+00:00 List-Id: Robert Dewar wrote: > values of one type to values of another type. It is that these > operations can generate abnormal values. I just thought of a way to implement safe type (read: class) casting in Eiffel: Use the Attempted Assignment operator ?= to try to assign, as in: local object1 : CLASS1 object2 : CLASS2 do !!object1.make (whatever) object2 ?= object1 -- this is what I mean if object2 /= Void then ... end This operation makes object2 a reference to object1, but belonging to class CLASS2, but only if, after conversion, object2 satisfies the class invariant of CLASS2. Otherwise, object2 will be Void. Oh, by the way, this is meant to be interpreted as humour, not as a serious proposal. ;-)