boost und standard
-
Hallo. Ich hbe gehört, dass die Boost Libs irgendwann mal zum C++ Std hinzugefügt werden. Stimmt das? Wenn ja, dann wann?
-
Der kommende C++ Standard (C++0x), soll teile von boost enthalten. Wann der Standard kommt steht nicht genau fest, das 0x soll aber andeuten, dass das noch in diesem Jahrzehnt passiert.
zZ. finden auch wohl schon fleißig meetings des komitees statt
http://www.research.att.com/~bs/C++0x_panel.pdf
http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/#post_oxford
-
Jover schrieb:
Hallo. Ich hbe gehört, dass die Boost Libs irgendwann mal zum C++ Std hinzugefügt werden. Stimmt das? Wenn ja, dann wann?
Nein. Das stimmt so nicht. Richtig ist, dass einige der Boost-Bibliotheken als Vorschläge für Standard-Library-Erweiterungen eingereicht wurden.
Bisher wurden 12 Erweiterungen akzeptiert (siehe: hier).
Davon sind einige direkt aus der Boost-Lib (Boost::tuple, Boost::function, Boost::type_traits, Boost::Smart_ptr, Boost::Ref ) oder basieren stark auf einer vorhandenen Boost-Lib (Regular Expressions, Enhanced Member Pointer Adaptor, computing function object return types, Enhanced Binder).Alle Libs werden Teil des neuen C++ Standards C++0X, der wohl um 2008 herum rauskommen wird.
-
2008?! Da bin ich ja schon ein Greis
Naja ich denke, die trauen sich wirklich große Änderungen nicht vorzunehmen. Natürlich kann man ein paar Libs hinzufügen, damit es dann 3987645 Standard-Libs gibt, und man kann neue Sprachmittel hinzufügen, aber darauf, dass sie Pointer durch Referenztypen wie in Java (die wie Pointer funktionieren aber wie Referenzen bedient werden) ersetzen, kann ich wahrscheinlich bis 2040 warten.
-
@Optimizer
wenn du so Referenztypen wie in Java haben willst, dann schreib dir doch eine Klasse dafür. Dank Operator-Überladung kannst du das ja ohne Probleme machen.
-
Dazu reicht mein bescheidenes Wissen nicht aus. Außerdem bezweifel ich, dass das möglich ist, das so zu implementieren, dass ich schreiben kann:
MyClass myObject; MyRef rToMyObject(myObject); // MyRef == Klasse für Referenztyp mit private Zieladresse? rToMyObject.doSomething(); // Ruft jetzt myObject.doSomething() auf
Das müsste ich für alle Klassen der Welt machen.
Und so, wie es da steht ist es nicht mal schön.
-
Was ist denn Boost?
Hört sich für mich nach Schubkraftverstärkung an.
-
(doppelpost)
-
Dein Beispiel verstehe ich nicht ganz.
In Java säge es coh so aus:
MyClass myObject = new MyClass(); MyClass rToMyObject = myObject; rToMyObject.doSomething();
und in C++ wäre es dann so
MyRef<MyClass> myObject (new MyClass); MyRef<MyClass> rToMyObject (myObject); // jetzt gibts ein Problem // etweder rToMyObject->doSomething(); // oder function bateln val(rToMyObject).doSomething(); // oder static_cast<MyRef>(rToMyObject).doSomething();
-
SoylentGreen schrieb:
Was ist denn Boost?
Hört sich für mich nach Schubkraftverstärkung an.boost ist eine Sammlung von Librarys, die Dinge enthält, die dir das tägliche Programmieren mit C++ erleichtern
(für C++ Anfänger ist boost aber IMHO nicht so gut geeignet, da boost sehr viele komplexe Konzepte benutzt)
@Optimizer
Dazu reicht mein bescheidenes Wissen nicht aus. Außerdem bezweifel ich, dass das möglich ist, das so zu implementieren, dass ich schreiben kann:
hmm, lass mich raten. Du willst kein C++ Programmieren und versucht einfach C++ als Java zu benutzen. So wird das nichts, da C++ viel mehr Features anbietet als Java (lassen wir mal die Standard Library weg).
-
Optimizer schrieb:
aber darauf, dass sie Pointer durch Referenztypen wie in Java (die wie Pointer funktionieren aber wie Referenzen bedient werden) ersetzen, kann ich wahrscheinlich bis 2040 warten.
Imho kannst du da ewig warten, da das Komitee keine schlechten Konzepte kopieren wird.
-
@kingruedi: Nein, ich will C++ als C++ benutzen, aber mir gefallen die Pointer nicht. Und nicht immer kann ich auf sie verzichten.
MaSTaH schrieb:
Imho kannst du da ewig warten, da das Komitee keine schlechten Konzepte kopieren wird.
Von solchen Aussagen halte ich gar nichts.
Begründe mal bitte. Der Referenztyp von Java kann alles was ein Pointer kann, ist automatisch dereferenziert, und wesentlich sicherer. Und damit mein ich jetzt nicht, dass der Garbage Collector ein Objekt löscht, wenn man den Zeiger auf null setzt - das ist noch zusätzlich ein nettes Feature.Man schaue sich diesen Post hier an. Ich rechne auch immer mit Adressen rum
-
Dass man aus Versehen einen Zeiger inkrementiert, passiert aber IMHO auch nicht oft. Gefährlicher sind IMHO ungültige weil veraltete Zeiger, und die kann man ohne Overhead nicht vermeiden. Und wenn es dir nur um die Arithmetik gibt, kannst du die wirklich wegwrappen.
-
Optimizer: eben. er kann alles was ein pointer kann -> NullPointerException
also wo ist er besser?
OK, er kann nicht undefiniert sein - aber es sollte nicht wirklich schwer sein, alle pointer zu initialisieren, oder?Aber zusätzlich zu Zeigern hast du in C++ Referenzen, dies hast du in Java nicht!
-
Lasst doch mal diese schwachsinnige Diskussion sein, jedenfalls auf dieser Ebene.
-
Shade Of Mine schrieb:
Optimizer: eben. er kann alles was ein pointer kann -> NullPointerException
also wo ist er besser?
Das ist doch so gewollt, dass der Referenztyp auf null zeigen kann. Das braucht man schließlich oft genug, ist ja auch einer der Gründe, warum ich manchmal Zeiger statt Referenzen verwenden muss.
Shade Of Mine schrieb:
Aber zusätzlich zu Zeigern hast du in C++ Referenzen, dies hast du in Java nicht!
Wenn du deine Referenzvariable in Java final machst, dann ist es wie eine Referenz. Referenzen auf primitive Typen brauche ich persönlich selten.
Aber ok, ich will ja gar nicht sagen, dass Java besser ist wie C++. Ich will nur sagen, dass die Referenztypen besser sind wie Pointer.
-
Aber ok, ich will ja gar nicht sagen, dass Java besser ist wie C++. Ich will nur sagen, dass die Referenztypen besser sind wie Pointer.
...und "als" ist besser als "wie".
Etwas ist besser/größer/schöner/schneller (-> Komparativ)... als etwas Anderes.
Etwas ist genauso groß/schön/schnell wie etwas Anderes.
Der Wein ist zwar besser als im letzten Jahr, aber gerade mal so gut wie der vom vorletzten Jahr.Es tut mir leid, aber wenn ich heute noch mehr Vergleiche im Komparativ mit "wie" statt "als" sehe, bekomme ich ein Magengeschwür. Also nicht gleich ausrasten.