Digital Mars Compiler findet iostream nicht(bzw. kann es nicht öffnen)
-
DMC ist Asbach Uralt.
iostream.h ist noch vor 1998 gewesen, seit dem offiziell ohne .h.
Warum benutzt du nicht den kostenlosen MSC? Wenn du keine IDE brauchst, findest du den im kostenlosen Windows SDK. Oder das VisualC++ 2010 Express runter laden.
-
Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Compiler- und IDE-Forum verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
DMC habe ich deswegen benutzt(bzw. versucht zu benutzen), weil GCC bei mir bei dem selben Programm folgenden Error ausgibt:
stl_algo.h||In function '_InputIterator std::__find(_InputIterator, _InputIterator, const _Tp&, std::input_iterator_tag) [with _InputIterator = std::_List_iterator<int>, _Tp = bool(int)]':|
stl_algo.h|4224|instantiated from '_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = std::_List_iterator<int>, _Tp = bool(int)]'|
iterators.cpp|14|instantiated from here|
stl_algo.h|147|error: ISO C++ forbids comparison between pointer and integer|
||=== Build finished: 1 errors, 0 warnings ===|Wobei er sich mit letzterem ja auf eine Headerdatei bezieht und nicht auf meinen Code ==> GCC scheint ein Problem mit seinen eigenen Header-Dateien zu haben ==> Ich wollte es mit Digital Mars probieren.
-
Sieht eher nach ein Programmierfehler aus.
-
blubb124 schrieb:
Wobei er sich mit letzterem ja auf eine Headerdatei bezieht und nicht auf meinen Code ==> GCC scheint ein Problem mit seinen eigenen Header-Dateien zu haben ==> Ich wollte es mit Digital Mars probieren.
Der header funktioniert. Das was du hier siehst ist eine Fehlermeldung bei einer Templateinstanzierung. Du hast irgendein Template aus der Standardbibliothek benutzt, dabei aber ein Argument benutzt, welches nicht die Anforderungen des Templates erfüllt. Da der Compiler das im Voraus aber nicht wissen kann, versucht er dennoch das Template zu instanzieren und findet dann erst innerhalb der Templetedefinition den Fehler. Das ist zwar ein sehr ärgerliches Verhalten, da es dir nicht viel hilft, aber da lässt sich nichts dran ändern. Immerhin weißt du durch die Kette von "instantiated from here", an welcher Stelle der Fehler in deinem Code kommt und kannst den Verursacher finden.
-
Der DMC steht ohne STL zum freien Download bereit.
Auf der käuflich verfügbaren CD sind STL-Pakete dabei.
Eine IDE ist auch auf der CD.Auf der Digital-Mars Seite unten sind mehrere Hinweise zur STL.
Hab den von Christof Meerwald adaptierten STLport installiert.Es gibt Quelltexte mit aktuelleren STLport-Versionen im Netz!
Aber irgend etwas in deinem Quelltext irritiert die STLport 4.5-0119 im Header algorithm.
MfG f.-th.
-
Nachtrag:
Schau mal unter typische Fehler:
http://www.horstmann.com/safestl.htmlNur auf die Schnelle geraten.
-
Dies akzeptieren der gcc, und der Digital-Mars mit STLport:
void f(list<int> & c) { list<int>::iterator p = find(c.begin(), c.end(), 7); }
-
Hallo blub,
bei deinem Code müßtest du "find_if" anstatt "find" (wie f.-th. schrieb) benutzen!
-
"find_if" compiliert mit g++, und Digital-Mars mit STLport
Gehe mal davon aus, das das kein Compiler, sondern ein C++ mit STL Thema ist.