🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1747

most-faq: template instantiation&compiler specifics

#1747
From: Gerhard Traeger
Date: Mon, 04 Mar 1996 19:43
69 lines
4061 bytes
kuehl@uzwil.informatik.uni-konstanz.de (Dietmar Kuehl) hat geschrieben:
> Ich kann nicht nachvollziehen, dass dies die am haeufigsten gestellte
> Frage ist.
Ich gebe zu, ich hatte nicht nachgezaehlt. Nur "faq" ohne Vorsatz waere
zu missverstaendlich gewesen. Aber clc++m hat wohl gegen diese Anfaenger-
Frage auch einen a-priori-Filter.

> Die Betonung liegt uebrigens durchaus auf "funktionsfaehig" und gemeint
> ist nicht die Beschreibung, in der der Compiler behauptet, was der Compiler
> kann!
MS:Introducing Visual C++(2.0): MSVC 2.0 (nutzbar nur fuer Win32, fuer
Windows3.1 geht nur 1.5) unterstuetzt Funktionen- und Klassen-Templates.
Offensichtlich problemlos, den ausser dieser Behauptung ist kein weiterer
Hinweis notwendig.
(O-Ton Colin Begg Colin@begg.octacon.co.uk:
 - >Template classes in Borland C++ are very useful. Does anyone know
 - >about an equivalent of this concept in MSVC++, or is that too
 - >difficult for microsoft developpers ?...
 - Yes, as is exception handling or other C++ V3 stuff.)

>: 1. Borland-C++:
>:    Template-Deklaration und -Definition in die header-Datei schreiben,
>Zu fordern, dass es so gemacht wird, ist nicht Standard konform.
O-Ton jjenkins@wpo.borland.com (Jeff Jenkins at Borland International):
- Why not just stick the template class in the header, declarations,
- definitions and all!  Then #include it where you need it!
Mag sein, dass er nicht zu den Compiler-Entwicklern gehoert. Aber schockiert
hat er mich trotzdem.

>:    - header und source den gleichen Basisnamen haben und
>:    - alle Quellen im gleichen Verzeichnis stehen.
>Nein. Das ist nicht unbedingt noetig (zumindest nicht fuer den
>generellen Ansatz; fuer die Implementation in SUN C++ schon...).
Die meinte ich auch. Bisher habe ich nur g++2.7.2/linux-1.2.13(a.out) und
SUN C++ 4.0.1 selber ausprobiert.

> Eine Moeglichkeit ... aus den Files mit den Template Source spezielle
> Objektfiles zu generieren
Das heisst, der Compiler hat ein, optional waehlbares, Verzeichnis in dem
er, ohne Ruecksicht auf die Position der Quellen im Dateibaum, diese 
speziellen Objektfiles ablegt? Ich will schliesslich nicht staendig einen
riesigen Include-Pfad angeben, der dann auch noch fuer jedes Template 
durchsucht wird (ala Cfront, siehe Jan Willamowius).

>Ich verwende gelegentlich Klassen, deren Name, wenn ich alle Templates
>ersetze (der Compiler ist bei Fehlermeldungen so freundlich, mir die
>Arbeit abzunehmen :-), auf 1KB zugeht.
Ich weiss, Makros sind boese, aber ich kuerze Instanzen von Templates mit
Makros ab. Damit wird die Quelle wieder kurz und (fuer mich) uebersichtlich.
Wozu soll eigentlich das Zurueckgehen bis auf die Grundtypen bei den Fehler-
meldungen gut sein? Bisher nervt es mich nur.

>Mit Standard konformen Compilern kommt das wieder...
>I am a realistic optimist
Ein Freund der Widerspruechlichkeit!
(schon mal einen SUN-SPARC-Printer an einer SUN unter SUN-Solaris 2.4 mit 
dem SUN-admintool verwaltet? Oder ein X11-Programm auf SUN10/C++4.0.1 
portiert, dass irgendwo eine globale Variable "stat" hatte? Die Laufzeit-
fehlermeldungen sind ungeheuer reproduzierbar und aufschlussreich :-/

Ich gebe ja zu, dass die explizite Instanzenbildung nicht schoen ist. 
Nach meiner Erfahrung reduzieren Versuche zur trickreichen Automatisierung
aber allzuoft nicht die Fehlerhaeufigkeit (des "Mensch-Maschine-Systems"),
erhoehen aber den Aufwand zur Behebung des Fehlers erheblich. Eine
"brute force"-Methode, die immer funktioniert, waere mir lieber als die
Notwendigkeit, staendig die Fehler schlecht implementierter hoher Ideale
umgehen oder ertragen zu muessen.

MfG, Gerhard.
Technical Details
Message-ID: <4hfh4o$8br@Dortmund.Germany.EU.net>
Path: arc1-ca.pugleaf.net!Dortmund.Germany.EU.net!news-intern

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!Dortmund.Germany.EU.net!news-intern
From: root@gt-priv.m.eunet.de (Gerhard Traeger)
Newsgroups: de.comp.lang.c++
Subject: most-faq: template instantiation&compiler specifics
Date: 4 Mar 1996 19:43:20 GMT
Organization: home
Distribution: world
Message-ID: <4hfh4o$8br@Dortmund.Germany.EU.net>
NNTP-Posting-Host: gt-priv.m.eunet.de
X-Newsreader: suck 2.0