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: Using generic package to store and retrieve string data Date: Sat, 8 Oct 2016 12:17:42 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <9cbda86b-57e3-4f9c-81bb-03a9a28a4cb6@googlegroups.com> NNTP-Posting-Host: XXXaKfQ6zzC8DMOzOT/pgA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:32049 Date: 2016-10-08T12:17:42+02:00 List-Id: On 2016-10-08 11:01, Simon Wright wrote: > "Dmitry A. Kazakov" writes: > >> On 2016-10-08 01:11, Jeffrey R. Carter wrote: >> >>> If your Strings may have differing lengths, then you should either >>> use Unbounded_String or one of the indefinite containers. >> >> Unbounded_String is not self-contained. Normally it is important for a >> stack and containers to have this. > > It looks self-contained to me. (I mean, if I 'with > Ada.Strings.Unbounded' I can pretty-much use it without further ado; > just a little complication with translating to/from String). The string body will be allocated in the pool not on the stack. That, not always, but usually defeats the purpose of having a stack of strings. >> IMO, the best way to implement an indefinite elements LIFO is on top >> of a custom memory pool. > > I doubt this is going to help the OP. My comment was addressed to Jeffrey's about indefinite elements. (The OP wanted fixed strings) A stack of indefinite objects sitting on the stack would require either custom allocation or custom serialization (e.g. using stream attributes). In both cases it is important to grow the stack towards lesser addresses/indices to have access to the beginning of the last element. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de