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: 103376,4c08cfbd3f797c1c X-Google-Attributes: gid103376,public From: Robert A Duff Subject: Re: simple question - how to emulate void * ? Date: 1998/10/24 Message-ID: #1/1 X-Deja-AN: 404728197 Sender: bobduff@world.std.com (Robert A Duff) References: <9v6hGdgMLuwN-pn2-Oc41W71Dq3U9@dt182n2f.tampabay.rr.com> <362EF435.7575@ddre.dk> <70pfpm$qe5@gcsin3.geccs.gecm.com> <1104_909142646@DZOG-CHEN> Organization: The World Public Access UNIX, Brookline, MA Newsgroups: comp.lang.ada Date: 1998-10-24T00:00:00+00:00 List-Id: dale@cs.rmit.edu.au (Dale Stanbrough) writes: > This is then a problem with Ada, ... True. >... Perhaps we need to understand the rationale of > having > > type Address is > > vs. > > type Address is private; Making type Address private, with a portable set of operators, is clearly preferable. The Ada 95 RM has Implementation Advice that encourages that. However, we couldn't *require* it, because in Ada 83, an implementation could put anything they liked into package System, and we wanted allow those implementations to have an upward-compatible System. A good rule of thumb is to never say "use System;", because you never know what junk might be in System, and might conflict with other use clauses. That was good advice in Ada 83, too, since one might be using different versions of System from different compilers. At least this sort of error is found at compile time. The use-clause rules prevent Beujolais effects -- that is, if there's a conflict between, say, System."+" and System.Storage_Elements."+", then neither one silently wins, but you get a compile-time error. > I certainly haven't hit this particular problem before, ... Perhaps because you never said "use System", but instead always "System.Whatever". - Bob -- Change robert to bob to get my real email address. Sorry.