Thread View: de.comp.lang.c++
2 messages
2 total messages
Started by Konstantin Trachos
Fri, 28 Aug 1992 12:03
suspectes inline
Author: Konstantin Trachos
Date: Fri, 28 Aug 1992 12:03
Date: Fri, 28 Aug 1992 12:03
45 lines
2484 bytes
2484 bytes
Es ist mir nie ganz klar geworden, welchen Nutzen man hat von dem Spezifikator inline. Er soll (und hat) fuer die Bedeutung eines Programmes keine Auswirkung. Aber ignorieren, wie B.S. sagt, sollte man ihn trotztem nicht. Dass er naemlich mehr als ein Hinweis an den Compiler sein kann, zeigt folgenes Beispiel:
Ein Softwarehersteller baut aus C.hxx und C.cxx die Library C.lib.
Der Anwender kriegt C.hxx und C.lib, und folgendes Beispiel
Stroustroups Segen:
// Interface C.hxx -----------------------------
class C{
int a() {return 0;} // OK
inline int b() {return 0;} // OK
int c(); // abwarten ...
int d(); // abwarten ...
};
// EOF C.hxx -----------------------------------
// Code C.cxx ----------------------------------
#include "c.hxx"
inline int C::c() {return 1;}// PENG!
int C::d() {return 0;}// OK
// EOF C.hxx -----------------------------------
Der Anwender freut sich auf seine neu erworbene Classe ...
Der cfront sagt OK, der C Compiler sagt OK, neue Libraries
koennen erzeugt werden ...
Aber der Linker kann das Token c__1CFv, d.h. Member C::c()
nicht finden! Bananenschale!
Die Verwendung von inline ist eines der besten Argumente fuer die moegliche Effizienz von C++-code. Aber sicheres Compilieren kann nicht dem Programmierer allein ueberlassen werden, sondern erfordert konsistente Sprachregeln.
Wie soll hier also gemacht werden:
- Revision der Inline-Regeln ?
- Spracherweiterung z.B. um ein ?
Gruesse
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
_ __
| | _ _/ / Uni-GH Paderborn, FB 14
| |/ / / __/ Dipl.-Inf. K. Trachos
| |\ \ / / Pohlweg 47-49 Tel: +49 5251 60 3227
|_| \_\ /__/ D-4790 Paderborn FAX: +49 5251 60 3238
email: trachos@dat.uni-paderborn.de
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Re: suspectes inline
Author: Joachim Schrod
Date: Fri, 28 Aug 1992 15:29
Date: Fri, 28 Aug 1992 15:29
28 lines
1817 bytes
1817 bytes
In article <1992Aug28.140320@uni-paderborn.de>, trachos@uni-paderborn.de (Konstantin Trachos) writes:
[Ein Tip: Die Return-Taste ist dafuer da, neue Zeilen anzufangen...]
> Es ist mir nie ganz klar geworden, welchen Nutzen man hat von dem
> Spezifikator inline. Er soll (und hat) fuer die Bedeutung eines
> Programmes keine Auswirkung.
Das stimmt nicht. RTFM. inline-Definitionen sind lokal, und damit
faellt Dein ganzes Beispiel zusammen.
Uebrigens:
Am haertesten finde ich, dass Du den Kram hier noch einmal auf
Deutsch postest, obwohl doch Joe Buck und Bjarne Stroustrup
hoechstpersoenlich schon gestern mittag Deinen Fehler korrigiert
haben. Bjarne war sogar noch sehr hoeflich und bemerkte, dass die
Fehlermeldung des Binders evtl. zu spaet waere und man eine
Fehlermeldung des Compilers vorziehen wuerde. (Interessierte finden
das in comp.lang.c++, Artikel <23566@alice.att.com>.)
Geltungssuechtig?
--
Joachim
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Joachim Schrod Email: schrod@iti.informatik.th-darmstadt.de
Computer Science Department
Technical University of Darmstadt, Germany
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads