erlug
[Top] [All Lists]

RE: [Erlug] C++

To: erlug@xxxxxxxxxxxxxx
Subject: RE: [Erlug] C++
From: "Ivan Sergio Borgonovo" <mail@xxxxxxxxxxxxxxx>
Date: Mon, 11 Mar 2002 17:14:40 +0100
On 11 Mar 2002 at 15:51, Alessandro Forghieri wrote:

> Saluti,

> > Dipende dal contesto... prova a tenere d'occhio 5000 char* in un
> > progetto da 100.000 line di codice.

> Se proprio si vuole, penso che snprintf prenda anche una string con
> cast automatico.

cast automatico... che brutta roba!
Così non scrivi in C ma in Visual Basic ;)

Anche qua bisogna vedere l'implementazione.
Se si tratta di una string nel senso di <string> già qualche cosa te la
tiri dentro (a proposito di #include).

C'è da dire che sia i compilatori che le implementazioni delle STL non
sono proprio deficenti e se la roba non ti serve NON viene compilata.

> > Una volta che cominci a scrivere in C++ switchare da uno stile di
> > programmazione all'altro può essere estremamente controproducente...

> Beh, dire che il chiamare *una* funzione di libreria standard sia cambiare
> stile di programmazione, mi sembra un po' estremo.

<string> e roba tipo atoi, printf, char* si trattano in maniera MOLTO
diversa.
Io cercherei di limitare lo scambio di contenuti tra buffer e string al
minimo possibile e in posti molto ben delimitati del codice... pena
incorrere in qualche buffer overflow per distrazione e altre facezie da
una parte e in overhead inutile dall'altra se ai a che fare con roba di
dimensioni piccole (leggasi: non ti serve la gestione della memoria...
e altre facezie appunto).

> > a guardarci bene non è nemmeno tanto complicato:

> > ostringstream string_ulto;
> > string s;
> > float f=12.7;

> > string_ulto << f;
> > s=string_ulto.str()

> Che se hai gia' importato per i tuoi iostream e compani va bene...
> ma se e' fatto all'unico scopo e' la conversione di uno (o piu') numeri in
> stringa,
> sembra un eccesso di zelo.

L'eccesso di zelo non è reato ;)

Il tirarsi su iostream e string (ovvio che se vuoi le string e non i
char* quella ti tocca includerla) potrebbe risultare meno drammatico di
quanto sembri [*], ma è MOOOLTO che non faccio test di questo genere...
e quando li ho fatti la cosa giocava MOOOLTO a favore del C/C style
rispetto al C++.

Adesso mi sa che se scrivi hello world in C e C++ l'assembly esce
uguale ;) cosa non indifferente visto che ti tiri dentro una cosa
portentosa tipo cout rispetto a una roba tipo print :)

[*] forse il carico più grosso è del compilatore più che durante
l'esecuzione.


e no... non credo che sia una buona idea riscrivere il kernel in C++, a
meno che volete fermarvi alla 2.4.19-pre2 per i prossimi 5 anni

e si... qua siamo ormai very OT e al limite del cazzeggio stile
Buffy... e non tirate fuori la storia dello script misterioso per
giustificarvi ;)
--
Salve
Ivan Sergio Borgonovo
http://www.webthatworks.it/



<Prev in Thread] Current Thread [Next in Thread>