peter.hahn schrieb:
Na nicht ganz.
Es heißt ja immer, das C eine Untermenge von C++ ist. Im Großen und Ganzen stimmt das auch. Aber eben nicht perfekt. Es gibt da durchaus mehr oder weniger subtile Unterschiede. Also einfach ein C-Programm nehmen und durch nen c++ schicken wird nicht immer funktionieren.
Der wichtigere Aspekt ist aber, das man C++ nicht als Erweiterung von C betrachten soll was dazu führt, das man C und C++-Code mischt wobei schnell mal komische Sachen passieren.
Was man heutzutage unter modernen C++ versteht hat hat nicht mehr viel mit dem zu tun, was man unter C so üblicherweise macht. Und man sollte es auch vermeiden beide Sprachen zu mischen.
KitKat::new() schrieb:
Finde ich nicht. C++ hat irgendwie gar nichts bevorzugtes. Nichtmal in der STL. C++ scheint ein Haufen zu sein in dem man reingeschmissen hat was nützlich erscheint.
Da ist durchaus was dran.
Ich glaub, die einzige Bedingung dafür das etwas in den C++ Standard schafft ist, das es zero-cost sein muss. Wenn das erfüllt ist, landet jede noch so absonderliche Abstrusität früher oder später in C++ :-)
Begründet wird das ja auch damit, das man dem Programmierer die Freiheit geben möchte zu nutzen, was er nutzen möchte.
Das führt aber auch leider dazu, das C++ eine komplexe Sprache wird. So komplex, das sie keiner mehr überblickt und damit jeder so sein eigenes Subset an C++ schreibt, wie Du ja selbst weißt.
KitKat::new() schrieb:
Ich habe auch nicht behauptet, dass C++ auf funktional spezialisiert ist.
Ich habe auch nicht behauptet das Du das behauptet hast.
Ich wollte nur damit klarstellen, das jede Sprache zu einem gewissen Stil ermuntert.
Du wirst halt viel öfter sehen das in einer funktionalen Sprache (wie z.B. Racket) auch tatsächlich funktional programmiert wird als in C++
Mehr wollte ich eigentlich auch gar nicht zum Ausdruck bringen.
KitKat::new() schrieb:
Eben C++ ermuntert zu nichts - und entsprechend Variationen gibt es sogar innerhalb der Programmiersprache.
Ja. Kann man so sehen, wie oben von mir bereits angedeutet. Insofern komme ich Dir da ein Stück entgegen. :-)
KitKat::new() schrieb:
Damit stellen sich nur die Fragen: ist genügend Geld für die Optimierung da, und ist der Zeitverlust beim Kompilieren tollerabel?
Vor allem weil C++ Compiler eh schon zum erbrechen langsam sind. :-)
foo_1337 schrieb:
Oben behauptest du, dass der Kernel + CPU vor Buffer Overflows schützen würden.
Wobei es schon Situationen gibt, wo das der Fall ist. Zu DOS-Zeiten war das gar kein Problem und Speicherbereiche des Systems reinzuschreiben. Heute "sieht" jeder Prozess nur seinen eigenen Adressraum und hat gar nicht die Möglichkeit "einfach so" fremden Code zu beeinflussen. Und das, weil die Systeme Prozesse mit Hilfe der
MMU der CPU abschirmen. :-)
Ein bisschen Recht hat er also schon. :-)