Mailinglist Archive: opensuse-programming-de (184 mails)
| < Previous | Next > |
Re: C++ Vector -> C Array
- From: Sebastian Huber <sebastian-huber@xxxxxx>
- Date: Mon, 6 Oct 2003 18:17:55 +0200
- Message-id: <200310061817.55223.sebastian-huber@xxxxxx>
On Monday 06 October 2003 17:52, Stefan Hundhammer wrote:
> On Monday 06 October 2003 17:43, Sebastian Huber wrote:
> > Da C++ so designed wurde, dass es moeglichst gut mit C Bibliotheken
> > umgehen kann, ist es doch eigentlich nur konsequent std::vector direkt zu
> > benutzen. Bei dem Umweg ueber Felder hat man ja wieder den ganzen
> > Verwaltungskram am Hals. Sachen wie
> > read( in, &v.front(), v.size());
> > write( out, &v.front(), v.size());
> > sind einfach praktisch und effizient.
>
> Falsch: Das sind einfach tickende Zeitbomben.
Das sind nur dann Zeitbomben, wenn man in Zukunft std::vector anders
implementiert. Das ist aber hoechst fraglich, oder nicht? Die heutigen
Implementierungen sind ja auch schon ueber 10 Jahre alt und vom Prinzip her
gleich geblieben (zumindest was die Speicherung als Feld angeht).
> Gerade, um sich solche Systemspezifika vom Hals zu halten, gibt es die C++
> -Streams.
Wir reden hier ja nicht von reiner C++ Programmierung, sondern davon, wie man
eine C-Funktion, die ein Feld haben will, einfach mit einem std::vector
bedient. Warum man nun ausgerechnet diese Funktion benutzen will oder muss,
das ist eine ganz andere Frage.
> On Monday 06 October 2003 17:43, Sebastian Huber wrote:
> > Da C++ so designed wurde, dass es moeglichst gut mit C Bibliotheken
> > umgehen kann, ist es doch eigentlich nur konsequent std::vector direkt zu
> > benutzen. Bei dem Umweg ueber Felder hat man ja wieder den ganzen
> > Verwaltungskram am Hals. Sachen wie
> > read( in, &v.front(), v.size());
> > write( out, &v.front(), v.size());
> > sind einfach praktisch und effizient.
>
> Falsch: Das sind einfach tickende Zeitbomben.
Das sind nur dann Zeitbomben, wenn man in Zukunft std::vector anders
implementiert. Das ist aber hoechst fraglich, oder nicht? Die heutigen
Implementierungen sind ja auch schon ueber 10 Jahre alt und vom Prinzip her
gleich geblieben (zumindest was die Speicherung als Feld angeht).
> Gerade, um sich solche Systemspezifika vom Hals zu halten, gibt es die C++
> -Streams.
Wir reden hier ja nicht von reiner C++ Programmierung, sondern davon, wie man
eine C-Funktion, die ein Feld haben will, einfach mit einem std::vector
bedient. Warum man nun ausgerechnet diese Funktion benutzen will oder muss,
das ist eine ganz andere Frage.
| < Previous | Next > |