votre compilateur préféré en c++ - C++ - Programmation
Marsh Posté le 27-06-2002 à 18:57:34
Je préfère les compilateurs de Borland parce que je trouve que les messages d'erreurs sont plus explicites que ceux de Microsoft (question d'habitude probablement)
Mais bon ton sondage est un peu foireux, vu que le compilateur de Borland C++Bulder c'est à priori le même que celui de Borland C++...
vive le Pascal
Marsh Posté le 27-06-2002 à 19:02:29
par borland c++ je voulais dire que le compilo avec l'ide qui ressemblait à visual c++.... ce n'est pas borland c++ builder...
je ne sais pas s'il utilise le même compilo...
je l'ai utilisé il y a quelques années...
antp a écrit a écrit : Je préfère les compilateurs de Borland parce que je trouve que les messages d'erreurs sont plus explicites que ceux de Microsoft (question d'habitude probablement) Mais bon ton sondage est un peu foireux, vu que le compilateur de Borland C++Bulder c'est à priori le même que celui de Borland C++... vive le Pascal |
Marsh Posté le 27-06-2002 à 19:04:57
Bhen oui mais bon le compilateur est probablement le même à la base.
(de la même manière, Delphi utilise une version récente du compilateur de Turbo Pascal, il me semble)
Là ton sondage y a un mélande IDE/Compilo.
Marsh Posté le 29-06-2002 à 01:28:20
ReplyMarsh Posté le 29-06-2002 à 11:40:22
Comment on peut voter pour un compilateur qui ne respecte pas la syntaxe du "for" ???
exemple:
for(int cpt;cpt<123;++cpt){ }
for(int cpt;cpt<123;++cpt){ }
compile pas avec Visual C++. Beuark.
(Note: je bosse sur VC depuis plus de 2 ans)
Marsh Posté le 29-06-2002 à 11:55:05
non c'est que borland est ANSI est pas microsoft.
dans l'absolu c'est microsoft qui est hors-normes.
Marsh Posté le 29-06-2002 à 13:44:37
Mingw est excellent et en plus gratuit
Marsh Posté le 29-06-2002 à 15:31:16
Jubijub a écrit a écrit : cui de borland est gratos (le compilo hein, pas l'IDE), et 100% compatible ANSI |
gcc est gratuit ET libre
Marsh Posté le 29-06-2002 à 15:31:43
ITM a écrit a écrit : Mingw est excellent et en plus gratuit |
et libre...
Marsh Posté le 29-06-2002 à 16:51:32
Jubijub a écrit a écrit : perso je m'en fou qu'il soit libre, tant qu'il est gratuit |
A mon avis, un compilateur libre a plus d'avenir qu'un compilateur gratuit. Tu es a la merci de Borland. Si ils decident de ne plus diffuser ou ne plus faire evoluer leur compilo, tant pis pour les utilisateurs
Oups, troll. -1
Marsh Posté le 29-06-2002 à 17:07:49
Codewarrior (4.0), mais c'est le seul que j'ai vraiment utilsé... sans tenir compte de emacs et tout le bordel...
J'aimais bien -> sobre.
Marsh Posté le 29-06-2002 à 18:23:22
c'est pas la veille que borland va lâcher ses compilo
fabsk a écrit a écrit : A mon avis, un compilateur libre a plus d'avenir qu'un compilateur gratuit. Tu es a la merci de Borland. Si ils decident de ne plus diffuser ou ne plus faire evoluer leur compilo, tant pis pour les utilisateurs Oups, troll. -1 |
Marsh Posté le 29-06-2002 à 18:28:17
je me rappelle du premier compilateur C que j'ai essayé : Watcom C (en 1995).
j'ai été soufflé par les optimisations qu'il faisait, c'était le seul pour l'époque à compiler ceci :
Code :
|
en son équivalent asm :
Code :
|
eu lieu de :
Code :
|
mine de rien, c'était une optimisation géniale ! sur un logiciel entier, on gagnait un grand nombre de cycles.
maintenant, tous les compilos compilent comme ça, ce qui, avec les machines puissantes de maintenant, n'offre quasiment plus d'intéret...
c'était la minute nostalgique de Feyd Rautha...
Marsh Posté le 29-06-2002 à 18:43:20
Jubijub a écrit a écrit : cui de borland est gratos (le compilo hein, pas l'IDE), et 100% compatible ANSI |
100% ANSI pour le C, bref rien d'extraordinaire, le contraire aurait meme été étonnant
Mais pour le C++ c'est une autre histoire
il n'y aurait apparemment qu'un seul compilo qui supporte toute la norme ANSI C++ de 1998 (meme export) : EDG
cf http://groups.google.com/groups?hl [...] 339&rnum=1
fabsk a écrit a écrit : Comment on peut voter pour un compilateur qui ne respecte pas la syntaxe du "for" ??? |
clair c'est exactement ce que je pensais, Visual C++ c'est une bouze immonde.
les namespaces il aime pas, les templates pas beaucoup plus, il se vautre lamentablement sur les for
en plus le niveau des warnings est pitoyable
je crois que un compilo pire pour le C++ ca n'existe tout simplement pas !
mais comme évidemment on va mettre ma parole en doute, fermons la parenthèse par les bonnes paroles de Bruce Eckel (que tout le monde connait évidemment) :
http://www.mindview.net/Books/TICP [...] #Compilers
A note about Visual C++.
I periodically receive messages saying that the most recent version of Visual C++ will not compile many of the programs in the book.
Let me attempt to be diplomatic here. Microsoft has stated that what they are creating is "a Windows compiler."
Their interest is in creating a compiler that makes Windows programs, and not one that is compliant to the C++ Standard.
As a result, the Standard C++ features in VC++ have been increasing at a relative crawl, and you should not expect VC++ to compile many of the programs in the book.
The complete listing of files that will not compile can be found in the file CompilerData.txt in both volumes.
et Thinking in C++ c'est vraiment pas un bouquin de C++ avancé :
pas d'exception ni de STL à peine plus de template... c'est la base de chez base du C++
bref n'écrivez pas que vous faites du C++ si vous utilisez Visual C++
Surtout qu'il y a la référence gcc gratuit et libre qui supporte une très grande partie de la norme ANSI C++ de 98 (y'a une page web qui indique tout les pb), le niveau des warnings est aussi à des années lumières de Visual
il y a aussi ICC le compilo d'Intel qui est gratuit sous UNIX et qui produit du code très rapide pour x86 (logique)
Marsh Posté le 29-06-2002 à 21:19:11
Dans visual, le dynamic_cast ne sera pas un peu buggé?
J'avais fait un exemple tout simple et je ne suis jamais arrivé a le faire marcher sous visual, gcc fonctionnait comme il le devait et je me suis toujours demandé si ça venais de mon code ou du compilo. J'arrive plus a retrouver le bout de code pour vous le montrer
Marsh Posté le 29-06-2002 à 21:46:21
toum toum a écrit a écrit : Dans visual, le dynamic_cast ne sera pas un peu buggé? |
dejà télécharge le service pack 5 de visual (+ de 100Mo)
sans le sp5, Visual C++ est carrément inutilisable pour faire du C++
itm a écrit a écrit : Mingw est excellent et en plus gratuit |
http://www.mingw.org/
pour rappel mingw c'est grosso modo gcc pour windows
c'est génialissime.
moi je programme sous unix avec gtk, et toujours en restant sous unix je recompile le programme pour qu'il fonctionne sous windows. j'ai pas besoin de recompiler le programme sous visual par exemple ce qui causerait que des soucis.
je garde le meme compilo donc j'ai pas de nouveaux bugs qui interviennent
le problème c'est que mingw est basé sur gcc 2.95 et on a pas réussi à utiliser gcc 3.1 avec
pour cygwin sous windows il faut une dll supplémentaire contrairement à mingw
Marsh Posté le 29-06-2002 à 22:13:34
toum toum a écrit a écrit : Dans visual, le dynamic_cast ne sera pas un peu buggé? |
Faut activer le RTTI dans le projet (option -GR je crois)
Marsh Posté le 29-06-2002 à 22:57:42
os2 a écrit a écrit : c'est pas la veille que borland va lâcher ses compilo |
Et si ils decident que les versions suivantes ne seront pas gratuites ?
Marsh Posté le 29-06-2002 à 23:43:48
tu achètes c tout
si tu comptes vendre tes programmes, faut bien investir un peu...
fabsk a écrit a écrit : Et si ils decident que les versions suivantes ne seront pas gratuites ? |
Marsh Posté le 30-06-2002 à 17:18:16
il y a t'il des gens qui après voir bcb et visual c++ ont adopté visual c++ par choix et non par obligation?
Marsh Posté le 30-06-2002 à 21:20:06
Harkonnen a écrit a écrit : je me rappelle du premier compilateur C que j'ai essayé : Watcom C (en 1995). j'ai été soufflé par les optimisations qu'il faisait, c'était le seul pour l'époque à compiler ceci :
|
yes un accro du Watcom...
attends le Watcom faisait des optimisations de porc, rien à voir avec les autres compilos de l'époque !!! (et tu ne montres que 0.1% des optimisations qu'il faisait, xor pour 0é un registre, c'est le b a ba)
Microsoft et Borland pouvaient aller se rabiller à l'époque...
Watcom C/C++ était le premier compilateur "dédié" à faire du mode protégé 32bits sous DOS !!!
C'était le premier des compilos à cibler le flux d'instruction pour le Pentium afin de paralléliser les instructions !!!
Tous les jeux perfomants ont étés écrits avec (Doom, DukeNukem 3D, NFS, Warcraft, Cubic Player, etc etc...)
Le mode protégé + les facultés d'optimisation du Watcom faisait de lui une grosse bombe.
C'est simple tout ce qui tourne avec DOS/4GW par définition a été écrit et compilé avec le Watcom !!!
Car tu avais une version dédié au Watcom de DOS/4G et du PMODE.
Le Watcom était aussi le compilo des démo-makers....
De la baballe en boite le Watcom, dommage qu'ils soient morts, et que le projet Open-Watcom semble abandonné.....
Souvenez vous de ça: 80% de vos jeux favoris étaient compilés par le Watcom
Marsh Posté le 30-06-2002 à 21:28:28
bjone a écrit a écrit : C'est simple tout ce qui tourne avec DOS/4GW par définition a été écrit et compilé avec le Watcom !!! |
ha bha j'aurai appris quelque chose... j'avais pourtant jamais beaucoup entendu parler de ce compilo
Marsh Posté le 30-06-2002 à 21:41:05
à l'époque des jeux sous DOS avec Dos-Extender, c'était clairement le compilateur ultime...
(j'ai fait tout mon apprentissage dessus...)
quand tu voulais apprendre à optimiser en assembleur, c'était simple, tu mettais ton code en C, et tu compilais avec toutes les optimisations possible, et tu regardais le code généré.
en éxagérant, c'était pas toi qui passait dèrrière pour optimiser le code en ASM, mais lui qui te montrais ce qu'il fallait faire !!! (enfin j'éxagère, mais le code généré était diamétralement opposé à ce que te faisait turbopascal 6 ou 7, ou là il y avait de quoi rire)
Marsh Posté le 01-07-2002 à 01:03:43
dev-c++
pourquoi ?
il fait très bien marcher la lib allegro que j'utilise assez souvent, c'est un ide.
(j'ai voté gcc parce qu'il se base sur ce compilateur)
Marsh Posté le 01-07-2002 à 03:30:22
Personne n'utilise celui de Comeau?? http://www.comeaucomputing.com/
Pourtant, il n'est pas cher ($50), et question adhesion au standard, je pense pas qu'on puisse trouver mieux.
A+,
Marsh Posté le 01-07-2002 à 09:02:02
bjone > accro du Watcom
j'ai cité l'exemple du xor eax,eax car c'était ce qui m'avait frappé en 1er à l'époque, mais c'est clair que les autres optims qu'il faisait étaient démentes !
à l'époque ou je codais des démos, c'était le seul compilo qui m'avait fait changer d'avis : je pensais que seul l'assembleur et mon petit cerveau permettaient de telles optimisations ! je suis tombé de haut !!
Marsh Posté le 01-07-2002 à 10:43:47
Je vous ferai remarquer qu'il n'existe que deux compilateurs qui savent faire les trucs vraiment rigolos du C++ (du genre les template metaprograms), à savoir icc (compilateur intel, ex kcc), et gcc.
Marsh Posté le 01-07-2002 à 11:22:53
Jar Jar a écrit a écrit : Je vous ferai remarquer qu'il n'existe que deux compilateurs qui savent faire les trucs vraiment rigolos du C++ (du genre les template metaprograms), à savoir icc (compilateur intel, ex kcc), et gcc. |
Hé beinnn, c'est bien beau d'avoir un langage avec ce genre de mechanismes puissant (les templates, etc.) si on ne peut même pas les exploiter dans la plupart des compilos...
http://www.adtmag.com/joop/crarticle.asp?ID=1517 -> un article de Bjarne Stroustroup à propos du Standard C++, le pauvre... tant que le Standard C++ n'est pas réellement un standard il peut toujours rêver...
Marsh Posté le 01-07-2002 à 11:34:20
MelloW a écrit a écrit : Hé beinnn, c'est bien beau d'avoir un langage avec ce genre de mechanismes puissant (les templates, etc.) si on ne peut même pas les exploiter dans la plupart des compilos... |
oui, bon, ok, mais ces friandises sont elles utilisées tant que ça ? j'en doute...
Marsh Posté le 01-07-2002 à 12:17:23
fabsk a écrit a écrit : Comment on peut voter pour un compilateur qui ne respecte pas la syntaxe du "for" ??? exemple: for(int cpt;cpt<123;++cpt){ } for(int cpt;cpt<123;++cpt){ } compile pas avec Visual C++. Beuark. (Note: je bosse sur VC depuis plus de 2 ans) |
c normal c'est comme si t'ecrivais:
int cpt;
for(;cpt<123;++cpt){ }
int cpt;
for(;cpt<123;++cpt){ }
Tu déclares 2 fois la meme variable.
Marsh Posté le 01-07-2002 à 12:21:46
Harkonnen a écrit a écrit : oui, bon, ok, mais ces friandises sont elles utilisées tant que ça ? j'en doute... |
Friandises... pas d'accord. Elle devrait être utilisé -> plus flexible, un degré d'abstraction plus élevé,... Si Java avait des templates, on pourrait les utiliser pour faire des types paramètrique par exemple. On déclare une classe Vector (par exemple) avec un type paramètrique, puis on instancie un Vector de floats, de ints, de string,... on est plus obligé de faire une classe Vector qui accepte des objets de type Object (si on veut que Vector accepte tout les types)... donc pas besoin de faire de type casting... Enfin, ce n'était qu'un exemple, je suis sur qu'il doit en exister plein d'autres...
Marsh Posté le 01-07-2002 à 12:23:42
hellbilly a écrit a écrit : c normal c'est comme si t'ecrivais: int cpt; for(;cpt<123;++cpt){ } int cpt; for(;cpt<123;++cpt){ } Tu déclares 2 fois la meme variable. |
heu non quand tu déclares un truc dans le for il n'est normalement valable que dans le for, donc on peut le redéclarer... enfin y a probablement des options à modifier pour activer ou désactiver ce comportement.
Marsh Posté le 01-07-2002 à 12:37:32
antp a écrit a écrit : heu non quand tu déclares un truc dans le for il n'est normalement valable que dans le for, donc on peut le redéclarer... enfin y a probablement des options à modifier pour activer ou désactiver ce comportement. |
Je sais pas si y a des compilos qui acceptent ca mais c'est vraiment pas logique. L'ecriture d'une boucle for n'implique pas la création d'un nouveau bloc d'instructions.
En tout cas je viens de tester sur un compilo borland et ca parche pas non plus.
Marsh Posté le 01-07-2002 à 12:44:45
je viens de tester dans Borland C++Builder 5, et ça marche.
Pour que ça ne marche pas il faut activer dans Project -> Options -> C++ l'option "Don't restrict for loop scope", qui par défaut est désactivée (donc par défaut ça marche).
D'après l'aide on peut activer cette option pour la compatiblité avec du code écrit dans l'ancienne norme ANSI
Marsh Posté le 01-07-2002 à 13:01:57
Ca marche avec tous les compilo C++ de borland (en tout cas depuis celui de c++ builder 4 au pire).
Marsh Posté le 01-07-2002 à 13:12:14
antp a écrit a écrit : je viens de tester dans Borland C++Builder 5, et ça marche. Pour que ça ne marche pas il faut activer dans Project -> Options -> C++ l'option "Don't restrict for loop scope", qui par défaut est désactivée (donc par défaut ça marche). D'après l'aide on peut activer cette option pour la compatiblité avec du code écrit dans l'ancienne norme ANSI |
autant pour moi
Marsh Posté le 01-07-2002 à 23:20:34
Oui, la portée de la variable definie dans une boucle for a toujours ete un bug reconnu du compilo VC++.
Normalement, le support MS avait dit que ça serait corrigé dans VC++ 7.0 (que j'ai pas). Qu'en est il?
A+,
Marsh Posté le 27-06-2002 à 18:40:17
Quel est votre compilateur c++ préféré et pourquoi
---------------
Borland rulez: http://pages.infinit.net/borland