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.
next prev parent 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