comp.lang.ada
 help / color / mirror / Atom feed
From: "Antonio Dur�n Dom�nguez" <andudo@teleline.es>
Subject: RE: Mixin with preelaborated element
Date: 2000/05/31
Date: 2000-05-31T00:00:00+00:00	[thread overview]
Message-ID: <6g9Z4.6398$jq6.21214@telenews.teleline.es> (raw)
In-Reply-To: slrn8j9hrm.mk.lutz@taranis.iks-jena.de

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1398 bytes --]

Why don't implement a circular list so that  <last element>.Next accesses to
List.Start.

Lutz Donnerhacke <lutz@iks-jena.de> escribi� en el mensaje de noticias
slrn8j9hrm.mk.lutz@taranis.iks-jena.de...
> I run into a problem with my list_mixin.
>   ftp://ftp.iks-jena.de/pub/mitarb/lutz/ada/types/list_mixin.ad?
>
> generic
>    type Base (<>) is abstract tagged limited private;
>    type S    (<>) is abstract new Base with private;
> package List_Mixin is
>    type T is abstract new S with private;
>    type T_Class is access all T'Class;
>    type List is limited private;
>    -- several lines of code deleted
> private
>    type T is abstract new S with
>       record
>          Next : T_Class := null;
>          Used : Boolean := False;  -- to detect multiple insertions
>       end record;
>
>    type List is limited
>       record
>          Start : T_Class := null;
>       end record;
>    -- several lines of code deleted
> end List_Mixin;
>
> The current implementation use null at the tail marker. This requires the
> flag Used and causes a lot of ineffient code.
>
> So I'd like to introduce a single fixed end node used by all
instantiations.
> It should contain only the Next element.
>
> How can I achieve it?
>
> Using assembly I added the link in front of the structure and ignored the
> varying context following it. Good examples can be found in D.E.Knuth
TAoCP.






  reply	other threads:[~2000-05-31  0:00 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-05-31  0:00 Mixin with preelaborated element Lutz Donnerhacke
2000-05-31  0:00 ` Antonio Dur�n Dom�nguez [this message]
2000-06-01  0:00   ` Lutz Donnerhacke
replies disabled

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