021
19.06.2007, 17:36 Uhr
0xdeadbeef
Gott (Operator)
|
Den Standard. Den neuen Standard gibt es noch nicht, und der kommt wahrscheinlich so um 2009.
iostream.h ist ein Relikt aus Prä-Standardzeiten, als die Leute gerade anfingen, die Sprache zu entwerfen. Die Zeit der C++-nach-C-Compiler, als templates und namespaces erst noch erfunden werden mussten. Im Zuge der Standardisierung haben sie dann festgestellt, dass sie mit der Notation bei der string-Klasse Probleme kriegten - string.h gabs in C schon - deswegen schreiben die Header der Strandardbibliothek sich ohne .h.
void main war allerdings auch damals schon falsch, und wurde von vielen Compilern nur deshalb überhaupt akzeptiert, weil die alten Prä-Standard-C-Compiler (i.e., frühe 80er Jahre) das auch haben durchgehen lassen (Allerdings haben solche Programme dann häufig die Shell durcheinandergebracht, als die den Rückgabewert auswerten wollte, also war das im Grunde damals auch schon falsch).
Kein C++-Standard hat jemals iostream.h beinhaltet, und weder ein C++- noch ein C-Standard haben jemals void main erlaubt. Das ist stumpf und ergreifend falsch. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 19.06.2007 um 17:38 Uhr von 0xdeadbeef editiert. |