Article View: de.comp.lang.c++
Article #1850Re: most-faq: template instantiation&compiler specifics
From: Ullrich von Bassewitz
Date: Sat, 16 Mar 1996 21:53
Date: Sat, 16 Mar 1996 21:53
64 lines
2972 bytes
2972 bytes
Gerhard Traeger (gerhard@gt-priv.m.eunet.de) wrote:
> > Dann habe ich das wirklich nicht verstanden.
> Grundprinzip: Arbeitsteilung.
Nu gut, das mit der Arbeitsteilung ist klar, dazu sind Bibliotheken
schliesslich da. Das sagt bisher aber noch ueberhaupt nichts ueber explizite
Instantiierung aus.
> > Du kannst mir ja nochmal erklaeren, wie denn derjenige, der eine Bibliothek
> > schreibt von vorneherein wissen kann
> Nicht von vorneherein, sondern aus seinem Lastenheft. Bei einer normalen
> Funktionen-Bibliothek stellt sich diese Frage doch auch (nicht).
Haeh? Was bitteschoen ist ein Lastenheft? Und wieso stellt sich die Frage
bei einer normalen "Funktionen-Bibliothek" nicht? Und inwiefern ist eine
solche mit einer Template-Klasse vergleichbar?
> > Wenn er das nicht weiss, wie soll dann eine explizite Instantiierung
> > in der Bibliothek funktionieren?
> Da er das weiss, gibt es dieses Problem nicht. Falls Du Schwierigkeiten hast,
> zu verstehen, warum er das meist weiss: Matrix-Operationen lassen sich
> wunderbar mit Templates implementieren, aber was ist bitte die Inverse
> einer String-Matrix?
Das scheint mir irgendwie drumherumgeredet zu sein (soll heissen, Du hast
nicht erklaert, warum er das weiss bzw. ich versteh's immer noch nicht).
Vielleicht kannst Du mir das ja mal anhand eines konkreten Beispiels aus
einer Bibliothek von mir erklaeren. Bei dem Beispiel weiss ich, dass mir
die explizite Template Instantiierung von g++ regelmaessig jede Menge
Aerger bringt:
template <class T>
class ListBox: public WindowItem {
protected:
Collection<T>* Coll; // Collection used
....
};
Das ist eine Listbox fuer ein Fenster auf dem Bildschirm in dem alles
moegliche dargestellt werden kann, was sich in der Collection befindet (eine
Art dynamisches Array).
Also jetzt mal konkret: Wie kann ich im Vorfeld alle moeglichen expliziten
Instantiierungen vornehmen? Das ist mir vor allem deshalb voellig
schleierhaft, weil "class T" in praktisch allen Faellen eine Klasse ist, die
es in der Bibliothekt ueberhaupt nicht gibt (weil das, was in der Listbox
auf dem Bildschirm dargestellt werden soll eben von vorneherein nicht
bekannt ist).
Also irgendwie habe ich das Gefuehl, dass ich entweder die Frage/das Problem
*voellig* missverstanden habe, oder das jemand anderes im Nebel
rumargumentiert...
Gruss
Uz
--
Ullrich von Bassewitz uz@ibb.schwaben.com
Technical Details
Message-ID:
<ITH0BOXH@wuschel.ibb.schwaben.com>Path:
arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mailReferences:
<4icof3$j9s@Dortmund.Germany.EU.net>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz) Subject: Re: most-faq: template instantiation&compiler specifics Date: 16 Mar 1996 21:53:03 GMT References: <4icof3$j9s@Dortmund.Germany.EU.net> Message-ID: <ITH0BOXH@wuschel.ibb.schwaben.com> Reply-To: uz@ibb.schwaben.com Organization: Ingenieurbuero von Bassewitz X-Newsreader: TIN [version 1.2 PL2]