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!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Question on bounded / unbounded strings Date: Thu, 22 Sep 2016 14:05:35 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <11ee98f5-d373-4c72-8562-c310cc76817d@googlegroups.com> NNTP-Posting-Host: vZYCW951TbFitc4GdEwQJg.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:31842 Date: 2016-09-22T14:05:35+02:00 List-Id: On 22/09/2016 13:08, J-P. Rosen wrote: > Le 22/09/2016 à 11:53, Dmitry A. Kazakov a écrit : >>> => Bounded_String is the way to go. >> >> Never. It is very difficult to find cases where >> >> 1. There is a hard upper bound, so hard that it would be feasible to >> mold it into the type. >> >> 2. There is no cases where the upper bound implies another type. There >> is nothing in the first name's length that makes first name different >> from the second name. These are just unrelated things. >> >> The major reason for that is that constraint whatever it be is most >> likely an implementation detail, which type difference is to reflect the >> problem space. >> > ?? I don't follow you here. I may not have been explicit enough, but of > course each type corresponds to a different instantiation of bounded > strings, wich provide different types with unrelated lengths. I meant that any non-tagged type can be cloned in Ada, String included. This is not specific to bounded strings. That a change of maximum length requires another type is not a feature, it is rather a design flaw. Clearly bounded strings of different maximum length should be subtypes of each other, as strings are, unless cloned. It is thinkable but useless to consider the maximum length a part of the contract. In most cases it is an implementation detail that does not deserve new type promotion. Just my explanation of the empiric fact that practically nobody uses them. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de