From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!aioe.org!5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Possible to recover default value of scalar type? Date: Mon, 14 Dec 2020 10:38:40 +0100 Organization: Aioe.org NNTP Server Message-ID: References: <0c0ddb8e-6a82-473d-8143-f4076242f520n@googlegroups.com> <86r1ntntb3.fsf@stephe-leake.org> <0ded905f-94ac-4470-936c-7f1cb19ac798n@googlegroups.com> <82e629ea-bd59-417a-9185-dd6094e396c1n@googlegroups.com> NNTP-Posting-Host: 5WHqCw2XxjHb2npjM9GYbw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader02.eternal-september.org comp.lang.ada:60838 List-Id: On 2020-12-14 10:01, AdaMagica wrote: > I do not really understand the problem. It seems you want to be able to access the default value like so: > N: Natural := Natural(A_Type'Default_Value); > This is not possible. Thre is no corresponding attribute 'Default_Value. > If this presents a real problem, submit it to Ada comment stating why this is important. It could in the cases like this: procedure Library_Foo (Bar : Baz := Baz'Default_Value) You can declare constants in some places, but not at the library level. But in any case, being forced to declare a constant each time you need to get at the default value? The same problem arises with container generics. If you have an array keeping container elements, logically freed elements need to be "destroyed" in some way. The default type value would be that thing as well as a default for Null_Element, if used. I think that all non-limited types one could declare uninitialized, must have S'Default_Value equal to the default value the compiler would use. And it should produce same warnings uninitialized values do: Put_Line (String (1..10)'Default_Value); -- print garbage -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de