Linux 15.012 Themen, 106.875 Beiträge

Ansi C++ ISO C++

KarstenW / 9 Antworten / Flachansicht Nickles

Hallo Linuxprogrammierer,

ich kenne nur Visual C++ und weiß das Visual C++ ein ANSI C++ Compiler ist. Bei C gibt wohl keine Unterschiede zwischen dem ISO und dem ANSI Standard. Wo ist der Unterschied zwischen ANSI C++ und ISO C++ ? Ich frage nur, weil ich aus Neugier mal ein kleines ANSI C++ Programm mit dem Linux C++ Compiler g++ übersetzten wollte und einen Haufen Fehlermeldungen in Bezug auf den ISO C++ Standard bekommen habe .
Ich benutze momentan:

Lese Spezifikationen von /usr/lib/gcc-lib/i486-linux/3.3.5/specs
Konfiguriert mit: ../src/configure -v --enable-languages=c,c++,java,f77,pascal,objc,ada,treelang --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-debug --enable-java-gc=boehm --enable-java-awt=xlib --enable-objc-gc i486-linux
Thread-Modell: posix
gcc-Version 3.3.5 (Debian 1:3.3.5-5)

Gibt es unter Linux auch einen ANSI C++ Kompiler ?

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
d-oli KarstenW „Ansi C++ ISO C++“
Optionen

Hi

1. Visual C++ ist definitv kein ANSI C++ Compiler. Wäre auch das erste Mal, dass sich Microsoft an einen Standard halten würde. Sicher hast du bestimmt schon mal vom sizeof()- und for( …; …; …)-Problem gehört.
2. Die Fehlermeldungen werden wahrscheinlich verschwinden wenn du einen V2.x GNU-Compiler verwendest. Die Fehler kommen daher, das der C++- Standard geändert hat und Visual C++ (V6 ?) ist ja schon, na ja, ziemlich alt … Dazu kann ich dir folgendes Buch empfehlen: C/C++ Third Editio, Osbourne, Herbert Schildt ISBN0-7-222722-2 Kapittel:14 „The Old_Style C++ I/O System“ und Kapitel 15: „The ANSI/ISO Standard C++ I/O Classes“. Vermutlich wirst du auch noch diverse Namespace- Probleme haben, diese rühren auch vom neuen C++- Standard her. Weil der frühere globale namespace jetzt der namespace std ist. Hängt davon ab ob Du "#include iostream" oder "iostream.h" verwendest.

Gruss, d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen
Ansi C++ ISO C++ thomas woelfer