🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: IOSTREAM.H

#1671
From: Jochen Diener
Date: Mon, 19 Feb 1996 00:00
52 lines
3041 bytes
## Originalempfaenger: /DE/COMP/LANG/C++

kuehl@uzwil.informatik.uni-konstanz.de schrieb in der Mail vom 16.02.96
zum Thema "Re: IOSTREAM.H":

> : cout ist ein Objekt der Klasse ostream_withassign, und wird waehrend der
>                                  ^^^^^^^^^^^^^^^^^^
> Diese Klasse gibt es nach dem DWP nicht mehr. Wenn man einen Stream
> umleiten will, dann muss man, mit einer Standard konformen
> Implementation von IOstreams 'rdbuf()' verwenden:
> 
>   void f(ostream &rep)
>   {
>     cout.rdbuf(rep.rdbuf());
>   }
  Du hast natuerlich recht, aber eigentlich wollte ich nur mal schnell
  noch ein Beispiel in die Tastatur hacken, das zum Probieren animieren 
  sollte.

> : Vielleicht baut ihr am besten im Kurs ein Arrayklasse die ihr ueber euren
> : eigenen stream ausgebt, dann kannst du es.
> Da die Implementation einer (guten, sicheren) Arrayklasse weit entfernt
                              ^^^^^^^^^^^^^^^^^
> von einfach ist, wuerde ich davon abraten, eine Arrayklasse in einem
> C++-Kurs zu implementieren. Ausserdem braucht man fuer eine sinnvolle
> Arrayklasse einige "advanced C++ features" wie 'raw-memory' anlegen,
> 'placement new' und explizite Destruktoraufrufe.
  Natuerlich soll er keine kommerzielle Version schreiben und dann 
  Klassenbibliotheken wie der LEDA Konkurrenz machen oder gar eine
  portable Garbage Collection implementieren.
  Aber eine einfache Implementierung macht IMHO viele Probleme klar die bei
  einer kommerziellen Implementierung auftreten und koennen so im
  Kurs mit einem hoffentlich kompetenten Kursleiter diskutiert werden,
  anstatt alleine zu Hause mit ein paar Buechern zu kapitulieren...
  
> ... ist nicht portabel: Es gibt fuer 'ofstream()' nach DWP keinen
> Konstruktor, der einen 'int' als Argument bekommt. Und 'myIn' soll
> vermutlich ein Objekt der Klasse 'ifstream' sein... Aber auch das ist
> unportable, funktioniert aber wenigstens mit einigen Libraries.
  Abgesehen davon, dass es nur ein schnell getipptes Beispiel war sollte 
  man sich darueber im klaren sein, dass nicht immer alle Compiler alle 
  Features und Bibliotheksfunktionen implementiert haben, geschweige denn, 
  dass sie so funktionieren wie sie sollten. Aus diesem Grunde ist man 
  auch oft gezwungen mit zusaetzlichen Layern zu arbeiten und manchmal 
  Dinge zu implementieren die evtl. sogar auf nur einem Compiler laufen.
  Trotzdem ist dein Hinweis natuerlich angebracht.

  Bis dann 
            Jochen

--
Mail: j.diener@hit.handshake.de  
Technical Details
Message-ID: <638ZYfr86JB@hit028.hit.handshake.de>
Path: arc1-ca.pugleaf.net!hit.sb.sub.de!j.diener

Show Full Headers
Complete Article Headers
X-Mailer: CrossPoint v3.1 R/A12197
Message-ID: <638ZYfr86JB@hit028.hit.handshake.de>
X-Gateway: ZCONNECT UR hit.sb.sub.de [DUUCP BETA vom 16.01.1996]
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
From: j.diener@hit.handshake.de (Jochen Diener)
Subject: Re: IOSTREAM.H
Date: 19 Feb 1996 00:00:00 +0000
Sender: j.diener@hit.handshake.de (Jochen Diener)
Path: arc1-ca.pugleaf.net!hit.sb.sub.de!j.diener
Newsgroups: de.comp.lang.c++
Distribution: world