Newsgroup: it.comp.lang.c++
Titolo: [OT] VisualC++ 7

Per quando è prevista la nuova versione del compilatore? Si sa niente
riguardo la piena compatibilità col C++ standard, o la Microsoft, pensando
alla sua nuova piattaforma, si allontanerà sempre più dal C++ standard?
--
Marco Iannaccone     
marc...@tin.it
ICQ: 18748121           MetalCoder
"What is real?  How do you define real?  If you're talking about your
senses, what you feel, taste, smell, or see, then all you're talking about
are electrical signals interpreted by your brain."
                                                       Morpheus - The Matrix

 alla sua nuova piattaforma, si allontanerà sempre più dal C++ standard?
Al momento e' in beta 1 e la beta 2 e' in drittura di arrivo. Il rilascio finale
non e' ancora annunciato. Nessuna idea.
VC7 verra' rilasciato insieme al resto della piattaforma .NET di cui fa parte.
Quindi i tempi non dipendono solo dalla "prontezza" del compilatore 
VC.NET
 ma
anche del compilatore 
VB.NET
, di quello C# e di tutti gli altri componenti di
VS.NET
 (ma questo e' sempre stato vero per VS). Inoltre devono essere pronte
tutte le altre parti di .NET in generale.
Riguardo allo stato attuale, specificatamente per il compilatore C++, direi che
e' abbastanza pronto. Se fosse per il compilatore C++ credo che andrebbero gia'
al rilascio.
Riguardo allo standard: certamente la piu' grossa novita' di VC7 sta nel
supporto specifico alla .NET e quindi all'inserimento di un miriade di
estensioni proprietarie al linguaggio. Ma questa parte dello sviluppo e'
completa e non ha inficiato il miglioramento della conformance (forse lo ha
rallentato un po). Il team VC della MS e' fermamente dell'idea che il
compilatore, salvo il "dovere commerciale" di supportare le estensioni
proprietarie, debba essere anche un compiltore C++ e seguire lo standard. Ci
sono pertanto una serie di switch che disabilitano in toto le estensioni MS. E
ci sono degli switch che permettono al compilatore di essere compliant anche se
questo rompe codice esistenete. Per esempio lo scoping di variabili definite
negli statement for:
for ( int i=0; i<10; i++ ) {
    /* ... */
}
i=5;
Nell'ultimo statement, l'assegnamento, VC attualmente compila mentre lo standard
dice che i e' visibile solo nel corpo del ciclo. VC7 puo' avere entrambe i
comportamenti a seconda di uno switch. In questo modo e' compliant ma e' anche
in grado di compilare codice preesistente.
Il livello di compliance e' molto migliorato. Soprattutto a livello di template.
Ma non e' ancora completo. Ci sono ancora tre o quattro "zone buie". Ovvero
features che non sono ancora implementate. Per esempio il supporto alla
"template class partial specialization" o il supporto alla "Koenig closure
lookup".
La libreria (che non e' sviluppata da MS ma da Dinkumware) e' anch'essa molto
migliorata e molto piu' conforme (vale anche per la STL, ovviamente). E
ovviamente ci sono parti in cui non e' perfetta dato che il compilatore stesso
non lo e' ancora.
In questo momento il team VC sta lavorando a rifinire gli ultimi rari bachi di
noncompliance in ambiti che sono ufficilamente supportati e poi credo che stia
lavorando al supporto delle "zone buie". Ma non c'e' nulla di ufficiale su quale
di queste sara' rilasciata per prima ne su quale versione (o SP) andra' a
cadere.
Piu' a lungo durera' lo sviluppo del resto di .NET, piu' tempo il team VC avra'
per migliorare alla conformance, piu' conforming il VC7 sara'. Il resto ... ai
successivi aggiornamenti.
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Beh, ottimo! Comunque, non è detto che VC debba uscire direttamente insiema
a VS, no? Non dovrebberò rilasciarlo anche da solo, e quindi magari, prima,
come successo con le versioni precedenti?


 come successo con le versioni precedenti?
No. Anche se dal nostro punto di vista il nuovo compilatore e' migliore perche'
piu' standard etc. dal punto di vista "commerciale" la grossa novita' e' la
capacita' di gestire il cosiddetto "managed code" e la generazione di pseudo
codice per il JIT compiler di .NET, con il conseguente supporto della
piattaforma. E lo stesso dicasi per il supporto "visuale" allo sviluppo se .NET
e' il target.
Pertanto VC7 praticamente non funziona se il sistema operativo non possiede le
estensioni .NET (e lo stesso vale per il nuovo visual studio, per non parlare VB
etc.)
La parte che interessa noi forse funzionerebbe anche. Ma quella e' solo una
frazione minimale del prodotto.


 Quindi i tempi non dipendono solo dalla "prontezza" del compilatore 
VC.NET
 ma
                                                                                                          ^^^^^^^
Il nome la dice lunga sulla qualita' del compilatore :DDD
Bow-wow
Killer

Il nome la dice lunga sulla qualita' del compilatore :DDD
A parte la banale battuta da ragazzini possiamo aspettarci un ottimo
compilatore, o sbaglio?
Luc.

 compilatore, o sbaglio?
Rispetto all'attuale e' molto migliorato. Ma al momento non e' ancora compliant
come altri gia' esistenti. Come dicevo ci sono 4 o 5 aree ancora non
implementate (quindi non bachi, ma semplicemnte assenza totale di compliancy) e
di queste almeno una e' grave nel senso che limita molto l'uso dei template e
quindi il livello di compliancy della STL. Ovvero l'assenza di "class template
partial specialization".


 compilatore, o sbaglio?
:/
Certo che umorismo zero :P
Killer

Certo che umorismo zero :P
Su questo NG quando appaiono i caratteri "V" "I" "S" "U" "A" e "L"
bisogna stre attenti a ciò che si dice ^_______^
Luc.