comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: Bases 1.52
Date: Thu, 11 Sep 2003 17:03:18 +0200
Date: 2003-09-11T17:03:18+02:00	[thread overview]
Message-ID: <1301057.xhkpTmYQhd@linux1.krischik.com> (raw)
In-Reply-To: 17eddf9f.0309092349.2ff22de2@posting.google.com

Mï¿œrio Amado Alves wrote:

> Martin Krischik wrote:
>> Bases 1.52
>> 
>> 51   This parameter shall have the signature
>>        type Element (<>) is private;
>> 
>> Why restrict to just one signature?
>> 
>> I have made very good experiences with containers based on:
>> 
>>    type Item (<>) is abstract tagged private;
>> 
>> This frees my applications from using heap memory when I need to store
>> Item'Class instances....
> 
> I'm not sure about the memory management implications, but doesn't the
> first signature include the second, in the sense that it accepts
> tagged actuals?

Yes, but to my knowlege you cant say:

type Item'Class is private;
 
so I use:

generic

    type Element(<>) is abstract tagged private;

    --  Pointer to be used
    type P is access T'Class;

package
    BC.Support.Tagged_Reference
is

    function Create (
        Value : T'Class)
    return
        Pointer;

Function Create uses T'Class - that is an kind of class. As for the memory
management implications, Ada - unline C++, allows:

    function Create (
        Value : T'Class)
    return
        Pointer
    is
    begin
        return Pointer'(Ada.Finalization.Controlled with
                    Value  => new T'Class'(Value));
    end Create;

No T::clone () needed.

> Restricting to just one signature is simply to keep the library small.

Shure, but one often likes to store Strings or a decendant of a tagged type.
With Strings one can use Unbounded_Strings but with tagged type on is lost.

Besides, Sun did not keep the Java Library small. In fact the Java Library
is huge. And Java is more successfull.

Or Python. The Python Library is huge and there are 2641 python project on
source forge and ony 67 Ada projects. 

And creating additional collection class from one which allready exists is
not that difficult. In fact is is so easy that I create them with a text
search and replace tool.

With Regards

Martin

-- 
mailto://krischik@users.sourceforge.net
http://www.ada.krischik.com




  reply	other threads:[~2003-09-11 15:03 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-02 18:59 Bases for the Design of a Standard Container Library for Ada Mário Amado Alves
2003-09-03 20:30 ` Warren W. Gay VE3WWG
2003-09-03 21:07   ` David C. Hoos
2003-09-04  2:19 ` Randy Brukardt
2003-09-04 11:56   ` Mário Amado Alves
2003-09-05  3:55     ` Randy Brukardt
2003-09-05  5:17       ` Matthew Heaney
2003-09-05 11:45         ` Amado Alves
2003-09-05 19:40           ` Randy Brukardt
2003-09-05 15:10         ` Martin Krischik
2003-09-07 18:03           ` Matthew Heaney
2003-09-08 12:54             ` Mário Amado Alves
2003-09-08 17:02 ` Bases 1.57 Martin Krischik
2003-09-08 17:07 ` Bases 1.58 Martin Krischik
2003-09-09 16:37 ` Bases 1.52 Martin Krischik
2003-09-10  7:49   ` Mário Amado Alves
2003-09-11 15:03     ` Martin Krischik [this message]
2003-09-12 10:58       ` Mário Amado Alves
2003-09-12 13:05         ` Martin Dowie
2003-09-12 17:49           ` maximum number of lines per spec (was: Bases 1.52) Mário Amado Alves
2003-09-13 12:18             ` Marin David Condic
2003-09-12 15:36         ` Bases 1.52 Martin Krischik
2003-09-14  6:51       ` Matthew Heaney
2003-09-14 14:32         ` Martin Krischik
2003-09-14 18:22         ` Robert I. Eachus
2003-09-14 22:56           ` Nick Roberts
2003-09-15  0:17             ` Robert I. Eachus
2003-09-14  6:45   ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox