Compiler, IDE ...
-
Ich dachte der Intel C++ wäre weitgehend kompatibel zum VC? Der hat doch sogar die Einschränkungen bzgl. des for(int i;)-Bugs, damit der gleiche Quellcode ohne Änderungen übersetzbar ist... steht doch auch irgendwo bei Intel, der Intel C++ ist kompatibel zum VC - das heißt aber auch, daß er nicht wesentlich näher am Standard dran sein kann...
-
mit /Za und -Qansi geht das schon
-
aber das problem mit den msvc 6.0 und templates läst sich lösen
Das sollte besser heißen: "Aber die Probleme des VC 6 mit Templates lassen sich manchmal lösen". Einige Sachen erfordern nämlich einen riesigen Aufwand (z.B. partial ordering von Funktionstemplates) und andere lassen sich überhaupt nicht umsetzen (z.B. vernünftige Typetraits - es ist z.B. nicht möglich für ein beliebiges T& das entsprechende T zu liefern ).
@Marc++us
Meines Wissens hat der Intel einfach ein paar Bugs weniger.
Das:template<typename T, int n> int arraylength(T (&arr)[n]) { return n; } int main() { int arr[20]; cout << arraylength(arr) << endl; }
geht z.B. nur mit dem Intel, nicht aber mit dem VC 6.
Das wiederum läßt beide gleichermaßen blöd aussehen:
template <unsigned i> int BloedesBeispiel() { return i; } int main() { // gibt fälschlicherweise dreimal 2 aus cout << BloedesBeispiel<0>() << "\n"; cout << BloedesBeispiel<1>() << "\n"; cout << BloedesBeispiel<2>() << flush; }
-
Original erstellt von HumeSikkins:
Meines Wissens hat der Intel einfach ein paar Bugs weniger.Das ist auch mein Kenntnisstand... er stürzt bei einigen Template-Konstruktionen nicht ab, aber ich weiß nicht ob man ihn deswegen als "näher am Standard" bezeichnen darf.
-
Original erstellt von Dimah:
mit /Za und -Qansi geht das schonMit diesen Compilersettings kannst Du aber weder die MFC noch ATL übersetzen, und damit sind diese Settings weitgehend sinnlos.
-
Original erstellt von Marc++us:
Das ist auch mein Kenntnisstand... er stürzt bei einigen Template-Konstruktionen nicht ab, aber ich weiß nicht ob man ihn deswegen als "näher am Standard" bezeichnen darf.Ich hab den ICC eine zeitlang getestet. Also was templates betrifft war er ganz OK -> partielle spezialisierung und sonst noch einige Kleinigkeiten.
Bei meinem kleinen conformance-Test reichte es immerhin fuer Platz 3 hinter gcc3 und Borland 6.
Aber ausser templates kann er eigentlich nicht wirklich mehr, sein Hauptaugenmerk liegt ja auch auf schnellem Code!
-
also C++Builder als nähestes am Standard? Warum is der nur so langsam
Wenn sich der Intel so verhält wie VC dann hilft er auch nicht wirklich weiter. Hatte irgendwo mal gelesen, dass er der einzige ist, der das "extern" für Templates unterstützt und daraus geschlossen, dass er recht gut am Standard wär.
Kennt jemand das Ding von DigitalMars mitsamt der Entwicklungsumgebung? Wenn ich das recht verstehe, kriegt man die nur, wenn man die CD bestellt? Ansonsten preisen sie sich ja, dass er beim Compilieren und Builden am schnellsten wären.
Hab jetzt mal MinGW mit DevC++ ein bisschen getestet. Der Compiler is ja schon mal gut. Die IDE sieht ja auch wirklich nicht schlecht aus. Aber der Debugger ist halt schon recht einfach. Um Projekte mit Threads zu Debuggen oder ne DLL scheint er nicht zu reichen ...
Dann hab ich mal nach reinen Debugger-Umgebungen geguckt. CodeInsight scheint so der Standard zu sein für GNU-Compiler (wenn man nicht auf Kommandozeile arbeiten will). Aber für die 3.2 Version vom MinGW scheint momentan keine lauffähige Windows-Version zu geben.
Wenn ich unseren Projektleitern sag, das müssen wir erst selber Hand anlegen, compilieren etc. dann werden sie nicht so begeistert von sein.Mit was arbeitet denn Ihr so im Job?
-
Original erstellt von Marc++us:
Mit diesen Compilersettings kannst Du aber weder die MFC noch ATL übersetzen, und damit sind diese Settings weitgehend sinnlos.jup, in diesen fall macht das ja nichts weil sie ihre guis mit Delphi machen
Original erstellt von <komk>:
**Wenn sich der Intel so verhält wie VC dann hilft er auch nicht wirklich weiter. Hatte irgendwo mal gelesen, dass er der einzige ist, der das "extern" für Templates unterstützt und daraus geschlossen, dass er recht gut am Standard wär.
**also extern kann er auch nicht,
ich würde ihn aber noch nicht abhacken, probiere mal die 30 tage test version (instalieren, ein hacken in msvc umstellen, und schon ist er bereit), der intel ist sozusagen bug komatiebel mit msvc d.h. aber nicht das du dein code extra mit den bugs code musst, du hast blos die wahl (mit /Za und -Qansi dan nicht mehr)[ Dieser Beitrag wurde am 19.12.2002 um 18:09 Uhr von Dimah editiert. ]
-
Wo wir gerade beim Intel Compiler sind: Hat einer von euch den mal so in die VC IDE integriert bekommen, dass man auch doppelt auf die Fehlermeldungen klicken kann und das dann an die entsprechende Stelle im Code gesprungen wird? Bei mir macht der da irgendwie immer doppelte Backslashes rein und findet deshalb die entsprechenden Dateien nicht.
-
ja ich, kein probleme
-
@Dimah
Ok. Danke. Dann liegt's wohl mal wieder an meiner Unfähigkeit. Hatte gehofft das ganze auf die Unfähigkeit anderer schieben zu können
-
Original erstellt von HumeSikkins:
@Dimah
Ok. Danke. Dann liegt's wohl mal wieder an meiner Unfähigkeit. Hatte gehofft das ganze auf die Unfähigkeit anderer schieben zu könnenhast du ihn beim setup erlaubt die umgebungs variablen zu setzen? ich ja
-
Original erstellt von HumeSikkins:
Ok. Danke. Dann liegt's wohl mal wieder an meiner Unfähigkeit.Die VC++ IDE sucht verlangt lediglich
filename(zeile)
am anfang der fehlermeldungSo habe ich zB auch den gcc geschafft in die VC++ IDE zu integrieren.
Welches Ausgabeformat hat denn dein ICC?
er sollte etwas in der artmain.cpp(12) : error C1414: Du doedel!
sein, dann schluckt es der VC++! (zumindest theoretisch)
-
Original erstellt von Shade Of Mine:
**Die VC++ IDE sucht verlangt lediglich
filename(zeile)
am anfang der fehlermeldungSo habe ich zB auch den gcc geschafft in die VC++ IDE zu integrieren.
Welches Ausgabeformat hat denn dein ICC?
er sollte etwas in der artmain.cpp(12) : error C1414: Du doedel!
sein, dann schluckt es der VC++! (zumindest theoretisch)**
wie hast du das gemacht gcc in vc? ich habe schon danach gesucht aber nichts gefunden
-
Original erstellt von Dimah:
wie hast du das gemacht gcc in vc? ich habe schon danach gesucht aber nichts gefundenjo, da gibts leider nix
Du kannst dir ja mal meinen Ansatz ansehen.
Aber das parsen der Ausgabe vom gcc ist etwas umstaendlich - denn der gcc schreibt nicht nach stdout sondern nach stderr - das ist natuerlich fies.
aber das programm besteht zu 95% aus einem switch mit vielen unter-switches
Sehr miserables design...PS:
grosser Dank geht hierbei an Walter Bright von Digital Mars, der mich auf die Idee dazu gebracht hat und so nett war mir die Source der Digital Mars cl.exe zu ueberlassen![ Dieser Beitrag wurde am 19.12.2002 um 21:19 Uhr von Shade Of Mine editiert. ]
-
Hallo,
meine VC Fehlermeldungen sehen so aus: "D:\cdtemp\test\test.cpp(737) : error C2065: 'coute' : nichtdeklarierter Bezeichner"Der Intel-Compiler produziert:
"D:\\cdtemp\\test\\test.cpp(737): error: identifier "coute" is undefined"
Die doppelten Backslashes sind das Problem.
[ Dieser Beitrag wurde am 19.12.2002 um 21:31 Uhr von HumeSikkins editiert. ]
-
Könnte das mit dem GCC sauber dokumentiert werden? Das wäre ein hilfreicher Tip, da man sich die VC-IDE ja über die Autorenversionen fast umsonst besorgen kann.... dann kann man die VC-IDE mit einem anderen Compiler nutzen, verletzt kein Copyright und hat trotzdem eine gute IDE mit einem starken Compiler... für 15 EUR.
-
gcc auf der VC-Oberfläche????
Das wär ja supergenial! Aber wie funzt das mit den make-Files? Und wie mit dem Debugger? Sind das nicht andere Formate und so?
grosser Dank geht hierbei an Walter Bright von Digital Mars, der mich auf die Idee dazu gebracht hat und so nett war mir die Source der Digital Mars cl.exe zu ueberlassen!
Geht das dann auch mit dem DigitalMars-Compiler? Der soll ja recht gut sein.
-
Ich habe das Projekt eigentlich abgebrochen, aber wenn so grosse Nachfrage besteht schau ich mir das vielleicht nochmal an...
Momentan ist irgendwo der Wurm drinnen und ich weiss nicht mehr genau wo...
zB das linken fehlt noch total! ABer kompilieren kann man AFAIR schon
Der 'Trick', der auch von Digital Mars und Intel verwendet wird ist der: man ersetzt die cl.exe durch eine eigene 'proxy' Datei, welche die Command Line Optionen erstetzt und dann den richtigen Compiler aufruft.
Beim Intel und Digital Mars geht das sehr einfach, da sie beide Binary Kompatibel mit dem VC++ sind... Der gcc aber nicht
Ausserdem hat die Proxy Datei vom Digital Mars ein paar kleine Macken
IMHO ist der Digital Mars ein schoener Compiler, aber gcc ist halt besser.
Wer interesse daran hat, an dem 'cl Proxy' Projekt mitzuarbeiten der schreibt mir bitte eine mail: toni@schornboeck.net
-
Original erstellt von kartoffelsack:
**Das wär ja supergenial! Aber wie funzt das mit den make-Files? Und wie mit dem Debugger? Sind das nicht andere Formate und so?Geht das dann auch mit dem DigitalMars-Compiler? Der soll ja recht gut sein.**
Der Digital Mars ist Binary Kompatibel - ich habe es zwar noch nicht getestet, aber der VC++ Debugger sollte mit dem DMC++ funktionieren.
Beim gcc geht das natuerlich nicht.
Es funkt so: du ersetzt die cl.exe vom VC++ durch meine und kannst dann ganz normal programmieren - lediglich die librarys die gelinkt werden sollen, muessen ersetzt werden. Und du kannst ganz einfach kompilieren und sonst alles machen
Allerdings fehlt momentan noch der Linker und die cl_proxy.exe hat auch noch n paar Bugs... (und ich will nicht wissen, wieviele Optionen ich falsch verdrahtet habe)