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.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.unit0.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Niklas Holsti Newsgroups: comp.lang.ada Subject: Re: Ada.Real_Time.Time_Last Date: Sat, 18 Nov 2017 19:31:37 +0200 Organization: Tidorum Ltd Message-ID: References: <591a9389-a4b8-43fa-b963-0ebb9e488be1@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net nQ1ZnvS2wIb0KkMAduFBtATRo42EI7Tj1C2tP6QIsoqw+g5Yrt Cancel-Lock: sha1:V420CcqIK/KK6k70TkBVx/33tpU= User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 In-Reply-To: Xref: feeder.eternal-september.org comp.lang.ada:48992 Date: 2017-11-18T19:31:37+02:00 List-Id: On 17-11-18 18:01 , Dmitry A. Kazakov wrote: > On 2017-11-18 16:24, Niklas Holsti wrote: > >> Making Count'First and Count'Last available is part of the goal of the >> extension, but the point is that the *expressions* that define their >> values would still be *private*, which means that the user of the type >> cannot (or is not meant to) depend on those expressions. The user can >> access the end result ('First, 'Last) but is not meant to depend on >> any other properties of those expressions. > > The proposal should also encompass other cases where information hiding > principle gets violated, e.g.: > > procedure Foo (I : Integer := 20); > > If I don't want to expose the default or when the parameter is a private > type, I should be able to provide a private value, just like in your case: > > type Count is range 0..; > > Same applies to the defaults of record type members, BTW. Those privacy needs can already be handled by defining the relevant values as deferred constants (perhaps modulo some freezing-point concerns). Of course this method means that the private constant must be given a name; that name may or may not be useful, depending on the case. -- Niklas Holsti Tidorum Ltd niklas holsti tidorum fi . @ .