🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Linken mit templates

#937
From: Torsten Vogt
Date: Mon, 04 Dec 1995 08:02
38 lines
2326 bytes
Martin Strasser fragte:
> Mein Problem liegt im linken von template classen.
> Und zwar befindet sich im Beispiel unten die darray.cpp und darry.hpp und main.cpp
> in verschiedenen files.
> Ohne verwendung von template laeuft alles.
> Falls die deklaration und die definition und das Hauptprogramm alle in einem file vereint sind,
> dann laeuft es auch.
[...]

Bei einer C++-Implementierung, die sich Stroustrup konform (vgl. Bjarne Stroustrup --
"Design und Entwicklung von C++") verhaelt, werden templates mit einer Art Prae-
prozessor realisiert. D.h. zum Zeitpunkt des kompilierens wird ein Textersatz
vorgenommen und der entsprechende Datentyp eingetragen. Zu diesem Zweck braucht
der Compiler allerdings die kompletten Informationen ueber Definition der
template-Funktionen und -Klassen. Du hast 2 Moeglichkeiten:

(1) alles in eine Datei (so wie Du es gemacht hast)
(2) template-Deklarationen und(!) template-Definitionen in eine(!) Include-Datei
   
Es gibt wohl mittlerweile auch Compiler, die die template Geschichte anders loesen, so
dass man auch linkbare Objektdateien erhaelt, in denen Templates implementiert sind.
Das ist jedoch Compiler-abhaengig und nicht portabel.


Torsten

-- 
---------------------------------------------------------------------
| Torsten Vogt                                                      |
|  Universitaet Mannheim - Lehrstuhl Praktische Informatik I        |
|  Seminargebaeude A5                                               |
|  D-68131 Mannheim                                                 |
|                                                                   |
|  Tel  : 0049-621/292-5132  Fax: 0049-621/292-5297                 |
|  email: vogt@pi1.informatik.uni-mannheim.de                       |
|  WWW  : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
---------------------------------------------------------------------
Technical Details
Message-ID: <49u9u6$mon@trumpet.uni-mannheim.de>
Path: arc1-ca.pugleaf.net!news.uni-mannheim.de!pi1!vogt

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.uni-mannheim.de!pi1!vogt
From: vogt@pi1.uni-mannheim.de (Torsten Vogt)
Newsgroups: de.comp.lang.c++
Subject: Re: Linken mit templates
Date: 4 Dec 1995 08:02:14 GMT
Organization: Universitaet Mannheim
Distribution: world
Message-ID: <49u9u6$mon@trumpet.uni-mannheim.de>
Reply-To: vogt@pi1.informatik.uni-mannheim.de
NNTP-Posting-Host: pi1.informatik.uni-mannheim.de