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.3 required=5.0 tests=BAYES_00,HK_RANDOM_FROM, INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,cef1e23795181e0c X-Google-Attributes: gid103376,public From: cjrgreen@concentric.net (Christopher Green) Subject: Re: Alternate to Unchecked_Conversion - Portable? Date: 1999/02/23 Message-ID: <36d3ba85.713118@nntp.concentric.net>#1/1 X-Deja-AN: 447792535 References: <36d05e39.0@news.pacifier.com> <36d2638e.6427631@nntp.concentric.net> <7avpi0$jke$1@nnrp1.dejanews.com> Organization: Concentric Internet Services Newsgroups: comp.lang.ada Date: 1999-02-23T00:00:00+00:00 List-Id: On Wed, 24 Feb 1999 02:52:52 GMT, robert_dewar@my-dejanews.com wrote: >In article <36d2638e.6427631@nntp.concentric.net>, > cjrgreen@concentric.net (Christopher Green) wrote: >> It is primarily useful in situations in which alternative >> implementations end up causing a bitwise copy. If >> the object to be converted is large, or the conversion >> must be done many times, this can be a win. > >This seems bogus to me. If you replace this by unchecked >conversion of *pointers* (i.e. access values), NOT the >items themselves, then there is no bit copying, and no >inefficiency at all in the access. > >-----------== Posted via Deja News, The Discussion Network ==---------- >http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own The situations I'm thinking of involve conversion of arrays of integers or pointers, large record objects, and the like. You are surely right in that there is no inherent reason why Unchecked_Conversion on scalars and pointers should be inefficient. For example, in X Window System programming, there are many C functions that return arrays of indefinite size (the size must be obtained through another argument or another function call). In this case, it is natural enough, though not fully portable, to declare an Ada array of the actual size and map it onto the C array with an address clause. In Ada 95, the package Interfaces.C.Pointers is a better solution to this kind of problem. -- Chris Green Advanced Technology Center Laguna Hills, California