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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: "Norman H. Cohen" Subject: Re: OO, C++, and something much better! Date: 1997/01/13 Message-ID: <32DAA505.319D@watson.ibm.com>#1/1 X-Deja-AN: 209640789 references: <32DA822A.2FD8@lmtas.lmco.com> content-type: text/plain; charset=us-ascii organization: IBM Thomas J. Watson Research Center mime-version: 1.0 reply-to: ncohen@watson.ibm.com newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng x-mailer: Mozilla 3.0 (Win95; I) Date: 1997-01-13T00:00:00+00:00 List-Id: Ken Garlington wrote: > Why does UC require copying? The following code works fine with my copy > of > GNAT, and I've used the same technique on Ada 83 compilers as well... > > with Unchecked_Conversion; > with Ada.Text_IO; > procedure Test_UC is > > type My_Integer is new Integer; > function To_Int is new Unchecked_Conversion ( My_Integer, Integer ); > > Foo : My_Integer := 7; > Bar : constant Integer := 0; > > begin > > To_Int(Foo) := Bar; > Ada.Text_IO.Put_Line(My_Integer'Image(Foo)); > > end; I can confirm that this works on my copy of GNAT too. The only problem is that this should NOT work! (To_Int(Foo) is a function call, not a variable.) RM 13.9(12) mentions that an instance of Unchecked_Conversion can return its result by reference, meaning that the result is just another view of the argument (i.e., there is no copying), but it is specifically stated that this is a read-only view. -- Norman H. Cohen mailto:ncohen@watson.ibm.com http://www.research.ibm.com/people/n/ncohen