Newsgroup: it.comp.lang.c++
Titolo: visual c++ express 2005

Il compilatore in oggetto lavora solo con programmi in c++ o anche con c ?

 Il compilatore in oggetto lavora solo con programmi in c++ o anche con c ?
Afaik anche C, diciamo che non mi risulta il contrario.
E sarebbe una scelta molto cretina fare un compilatore C++ che non
supporta C.
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.

 ha scritto nel messaggio 
news:1i66okk.1v6agc31huufs5N%ri...@despammed.com...


 oppure bisogna 'dirglielo' in qualche modo?
Il C e' un subset del C++ (apparte alcune piccole estensioni dell'ultima 
revisione del C che saranno comunque assorbite nella prossima revisione 
del C++), quindi il peggio che rischi e' di dover essere un po' piu' 
preciso nelle conversioni tra i tipi e di dover mettere "extern "C"" 
intorno agli header di librerie solo C....
Detto questo suppongo che anche la versione express supporti quel 
meccanismo orrido di visual studio per cui pesca nel registro di sistema 
una serie di estensioni da associare al C e una serie di estensioni da 
associare al C++.
Tipicamente "C" per il C e "CPP", "CXX", "CP" per il C++.
Il meccanismo e` orrido perche` con VS6 mi e` capitato di dover 
intervenire sul registro di sistema di ogni macchina su cui dovevo 
compilare dei progetti originariamente sviluppati su linux in cui per i 
sorgenti in c++ veniva usata l'estensione C (i filesystem unix sono case 
sensitive) e PCC (output del precompilatore di Oracle ProC).
Per fortuna ormai da alcuni anni sono riuscito a introdurre in azienda 
come compilatore anche x i progetti Win32 il gcc (mingw32) e da allora 
abbiamo un solo ambiente crossplatform di compilazione tra l'altro 
distribuito su + server tramite distcc.
Tutto questo per dirti che anche mingw32 e' un'ottima alternativa alla 
versione Express di VS se vuoi un compilatore free stabile e collaudato 
anche x applicazioni "serie".
Bye,
  Gabry

 anche x applicazioni "serie".
E cosa ne pensi di dev c++ ?

 del C++)
A dire il vero, non è esattamente così. Diciamo che il C++ ha un
subset C-like, ma il C non è un subset del C++: ci sono regole
distinte.


E' basato proprio su MingGW.

 intorno agli header di librerie solo C....
Non per stare a depilare le mosche, tuttavia
struct class {
  int i;
}
è un programma C valido, ma non è un programma C++ valido. A prescindere
dal fatto che in C99 ci siano i vla e in C++ al momento no.
Ribadisco, all'atto pratico sono d'accordo con te, ma da un punto di
vista teorico sono (e saranno linguaggi diversi finchè per lo meno non
supporteranno le stesse keywords).


 
...
Magari bastava leggere l'help per scoprire che:
...
/Tcfilename
/Tpfilename
/TC
/TP
The /Tc option specifies that filename is a C source file, even if it 
doesn’t have a .C extension. The /Tp option specifies that filename is a 
C++ source file, even if it doesn’t have a .CPP or .CXX extension. A 
space between the option and filename is optional. Each option specifies 
one file; to specify additional files, repeat the option.
/TC and /TP are "global" variants of /Tc and /Tp. They specify to the 
compiler to treat all files named on the command line as C source files 
(/TC) or C++ source files (/TP), without regard to location on the 
command line in relation to the option. These global options can be 
overridden on a single file via /Tc or /Tp.
By default, CL assumes that files with the .C extension are C source 
files and files with the .CPP or the .CXX extension are C++ source files.
...
A me non sembra poi tanto "orrido".

supporteranno le stesse keywords).
Più che le stesse keywords, le stesse semantiche.
Per esempio, dichiarare una funzione senza parametri, in C, significa
ammettere un numero indeterminato di parametri; in C++ significa non
ammettere parametri.

 supporteranno le stesse keywords).
Non solo.
Qui è un buon sito dove sono riportate numerose altre differenze:
http://david.tribble.com/text/cdiffs.htm
-- 
Gerolamo 

 ammettere parametri.
Anche.


 c++ oppure bisogna 'dirglielo' in qualche modo?
Che io sappia i file con estensione .c vengono compilati con il
compilatore c, quelli con estensione cpp, cxx (e forse anche cc)
vengono compilati in c++. 
--
Marco
 
-- 
I'm using an evaluation license of nemo since 62 days.
You should really try it!
http://www.malcom-mac.com/nemo