Article View: de.comp.lang.c++
Article #35suspectes inline
From: 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
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Technical Details
Message-ID:
<1992Aug28.140320@uni-paderborn.de>Path:
arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!Sirius.dfn.de!math.fu-berlin.de!pbinfo!trachosShow Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!darwin.sura.net!Sirius.dfn.de!math.fu-berlin.de!pbinfo!trachos From: trachos@uni-paderborn.de (Konstantin Trachos) Subject: suspectes inline Message-ID: <1992Aug28.140320@uni-paderborn.de> Keywords: inline, sicheres Programmieren Sender: news@uni-paderborn.de (News Uni-Paderborn) Nntp-Posting-Host: sunkist Organization: Uni-GH Paderborn, Germany Date: Fri, 28 Aug 1992 12:03:20 GMT Lines: 45