Newsgroup: it.comp.lang.c++
Titolo: C++ puro e Microsoft,Borland etc...

Supponendo di conoscere il c++ puro,chi volesse darsi alla
programmazione seria deve scegliere UN compilatore (es. Visual C++) e
quindi imparare QUELLA "versione" del c++...
Mi sono imbattuto in problemi di incompatibilità tra VC++ e C++Builider,
vorrei sapere "voi puristi" come vi ponete di fronte a questi
problemi,che tipo di compilatore scegliete e in base a cosa.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 problemi,che tipo di compilatore scegliete e in base a cosa.
Cerco di scrivere codice *standard* e lo provo su piu' compilatori per
assicurarmi che vada bene sempre (o almeno l'intenzione e' quella).
 bye
	av.

 problemi,che tipo di compilatore scegliete e in base a cosa.
Nel C++ Builder di Borland nelle opzioni di compilazione c'è il riquadro
Language Compilance che ti permette di impostare il tipo di semantica e
sintassi a cui il compilatore deve attenersi. Le scelte permesse sono :
Borland
Unix V
Ansi
K & R
Se lo imposti su ANSI stai sicuro che accetterà puro ANSI C++.
Nel Visual C++ non so se esiste una cosa analoga.
Ciao,
Steve

 problemi,che tipo di compilatore scegliete e in base a cosa.
Io ho capito che l'unica cosa che conta è imparare BENE  il linguaggio puro.
Dopo, le specifiche implementazioni, librerie grafiche etc diventano
facilmente digeribili...
The Wizard

 problemi,che tipo di compilatore scegliete e in base a cosa.
Normalmente uso icc (intel), VC++ e gcc: a seconda della piattaforma.
Io cerco sempre di scrivere codice ANSI C/C++, se ho a che fare con codici
altrui provo ad usare il precompilatore ad esempio:
#if !defined(__GNU__)
#   undef  __attribute__
#   define __attribute__(x)
...
#endif
#if !defined(MSC)
#   undef  __inline
#   define __inline inline
...
#endif
lo so, non e' ne' bello ne' elegante ma se non si puo' fare di meglio vuol
dire che e' il meglio che si poteva fare.
ciao,
Nids

 problemi,che tipo di compilatore scegliete e in base a cosa.
Forse hai un pò di confusione.
Il C++ che chiami puro è il C++ standard.
Un compilatore C++ compila codice in C++.
Possono esserci piccolissime differenze rispetto allo standard (e un
compilatore può essere più o meno standard compliant, ma qualsiasi programma
C++ standard viene quasi sempre compilato da qualsiasi compilatore.
Borland C++, Visual C++ non fanno eccezione.
In C++ fai programma seri (e anche no).
I problemi d'incompatibilità che riscontri non c'entrano nulla con la
programmazione in C++ standard.
Non esiste questa o quella versione del C++.
Le differenze che noti derivano dal fatto che alcuni compilatori
commerciali, come quelli che menzioni, a corredo offrono la possibilità di
utilizzare vaste raccolte di librerie (chiamate Framework) propietarie, e
che per questo motivo non sono portabili. Chiaramente l'utilizzo di questo o
quel framework favorisce la scrittura di software (solitamente la creazione
dell'interfaccia utente e l'uso di caratteristiche avanzate del sistema
operativo), ma per contro, il software prodotto rimane legato all'ambiente
di sviluppo e al sistema operativo a cui l'ambiente di sviluppo è spesso
legato, soprattutto per il fatto che questo codice non è standard.
Inevitabilmente chi scrive software di professione, ha necessità di creare
interfaccie grafiche accattivanti o di utilizzare caratteristiche avanzate
del S.O. quindi di per se non è peccato usare questo o quel framework.
A mio avviso un programmatore longimirante dovrebbe (ed è perfettamente
possibile, programmando in C++ standard) scrivere codice capace di
funzionare per il solo fatto che in C++ è uno dei linguaggi più potenti, e
scrivere codice capace di adattarsi a lavorare con uno o più framework
prescelti per ottenere l'applicazione finale o le applicazioni finali che
devono essere create.
E' piuttosto semplice scrivere classi e successivamente derivarle o
aggiungere metodi capaci di interagire con l'interfaccia grafica.
Per il resto, sono d'accordo con te, che la scelta di un framework è
importante, quando un requisito dell'applicazione che stiamo scrivendo è
un'interfaccia in linea con gli ultimi sistemi operativi.
Un programma con un buon cuore in C++ standard, potrà affiancarsi a
qualunque framework o libreria grafica per avere un'applicazione robusta e
facilmente aggiornabile.
A conclusione delle mie opinioni, non esistono solo framework commerciali ma
anche ottime soluzioni open-source e quindi più portabili (sono sicuramente
soluzioni interessanti per chi sceglie di programmare in C++ standard per la
portabilità).
Personalmente ritengo che la programmazione in C++ standard non sia soltanto
sinonimo di portabilità, ma anche sia garanzia di potenza e affidabilità che
la STL si è conquistata negli anni.
Quando si parte a progettare un software, è bene partire nel modo giusto.
Parti a scrivere codice standard e verifica fin da subito quali problemi
potresti avere, non perdere tempo a crearti interfaccie se poi il tuo codice
non realizza quello per cui è stato ideato.
Per terminare con la risposta e farla breve.
Io uso il Borland C++ e il Dev-C++ (Mingw32) sotto Windows e il GNU C/C++
compiler sotto Linux.
Sono solito a scrivere in C++ standard e quando necessito di un'interfaccia
grafica (fortunatamente mi capita poco perché scrivo software scientifico
che di solito scrive sugli stream) uso wxWindows (ottimo framework
opensource) perché mi consente di compilare lo stesso software su differenti
calcolatori e S.O. oppure se devo fare grafica 3D allora c'è "glut" .
La mia però, è forse una scelta atipica, ho anche la fortuna di poterlo
fare...
Ho molti amici sviluppatori che usano soluzioni propietarie, una in
particolare, quando sviluppano per Windows (spesso se cerchi lavoro devi
avere quella sul curriculum)... Dato che però li conosco molto bene e
qualche volta vedo il loro codice o ci scambiamo consigli, so che quel
codice con poche modifiche si può slegare dal quel framework ed essere
compilato su di un altro compilatore con un'altro framework, perché la base
è C++ standard.
Per linux invece, ci sono pochi dubbi sul sistema da utilizzare (almeno come
compilatore).
Ti saluto, questo è ovviamente soltanto il mio punto di vista.

 problemi,che tipo di compilatore scegliete e in base a cosa.
Io scrivo codice standard e, sebbene usi Windows come piattaforma di
sviluppo principale, lo ricompilo regolarmente in altre piattaforme e con
altri compilatori per verificare la compatibilità. Questo offre un vantaggio
in più: alcuni compilatori "lasciano correre" più di altri alcune
particolarità, per cui si scopre sempre qualche errorino nascosto tramite il
cross-compiling.
Quando ho bisogno di funzionalità che non rientrano nello Standard C++
utilizzo librerie cross-platform, oppure, in casi molto specifici,
implemento la funzionalità da me utilizzando le librerie di sistema e
cercando di prevedere più sistemi e piattaforme possibili.
Quello che non faccio MAI è utilizzare particolarità del *linguaggio* non
aderenti allo standard.
Ciao,
  Marco

 wrote in message
news:e67dbf18e5a2a0e72cd...@mygate.mailgate.org...

Le librerie grafiche sono di solito correlate al so, se cerchi qualcosa di
di multipiattaforma punta su wxwindows.
A mio modesto parere, si potrebbe creare un sistema per il quale non sia un
casino interfacciare su diverse piattaforme, un certo tipo di codice,
ovviamente a carico dei vari operatori; ad esempio la BOrland potrebbe
creare una certa libreria , interfaccia, capace di convertire o
interfacciare un programma c++ pensato per windows, in codice adatto a
fungere su linux. unix.
Certo la cosa non è facile , richiede tempo risorse e voglia di farlo, ma
credo che la cosa sia ampiamente alla portata delle case Borland, Microsoft,
visto che di mezzi monetari, e di personale non ne sono in deficit.
Se questo fosse possibile vorrebbe dire avere un codice che non richiede
essere riscritto quasi in toto.
Certo le api dei sistemi operativi sono parecchie, e credo che gli stessi so
debbano andare in contro uno con l'altro, per esempio linux offre wine, ma
microsoft non offre un bel nulla, per via delle politiche commerciali, che
distruggono la qualità a mio parere.
Parliamo di esempi?
Pensiamo a 7zip, nella compressione, gratuito ed è un mostro.
Nel video , divx sappiamo come sia nato, e xvid un capolavoro in seguito
implementato.
Nel campo delle immagini, irfantview , un capolavoro di velocità e
praticità.
Insomma il miglior software è quello che tende all'open source.
Saluti